首页 > 解决方案 > 添加 HttpInterceptor 后,ngx-translate 无法正常工作

问题描述

就像标题说的那样,在我将 HttpInterceptor 添加到我的代码之前,一切正常,问题是我有两种方法来翻译我的字段,一种仍然可以正常工作,第二种不像下面显示的那样

 <dx-button 
    (click)="logIn()" 
    type="default" id="buttonLogIn"
    text="{{ 'LoginPage.Login'|translate }}">
</dx-button>
<span id="containerStayConnected"><input type="checkbox" id="stayConnected" [(ngModel)]="stayConnected" /><label for="stayConnected" translate>LoginPage.StayConnected</label></span>
<a id="forgetPassword" translate (click)="isPopupForgotPasswordVisible = !isPopupForgotPasswordVisible">LoginPage.ForgotPassword</a><br><br><br>

应答器内的翻译正在工作,而在 dxButton 中使用管道的翻译不起作用这是我的拦截器服务

@Injectable()
export class AuthInterceptorService implements HttpInterceptor {

constructor(public auth: AuthService) {}

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    const userId = localStorage.getItem('access_token');
    request = request.clone({
        setHeaders: {
            Authorization: `Bearer ${userId}`
        }
    });
    return next.handle(request);
}

有没有人知道为什么在我添加 httpInterceptor 之后使用 Pipe 停止工作的翻译。

标签: angular6angular-http-interceptorsangular-pipeangular-i18n

解决方案


public auth: AuthService我通过从构造函数中删除解决了这个问题。我认为这里造成问题的是 HttpInterceptor 和 AuthService 都注入了​​ HttpClient。如果有人有兴趣查看有关类似问题的更多信息,请在此处查看 https://github.com/angular/angular/issues/18224


推荐阅读