ngx-translate 添加 HttpInterceptor 后无法正常工作
ngx-translate not working after i add HttpInterceptor
如标题所说,一切正常,直到我将 HttpInterceptor 添加到我的代码中,问题是我有 2 种方法来翻译我的字段,一种仍然可以正常工作,第二种与下面所示不同
<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 的翻译停止工作。
我通过从构造函数中删除 public auth: AuthService
解决了这个问题。
我认为这里造成问题的原因是 HttpInterceptor 和 AuthService 都注入了 HttpClient。
如果有人有兴趣查看有关类似问题的更多信息,请在此处查看
https://github.com/angular/angular/issues/18224
如标题所说,一切正常,直到我将 HttpInterceptor 添加到我的代码中,问题是我有 2 种方法来翻译我的字段,一种仍然可以正常工作,第二种与下面所示不同
<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 的翻译停止工作。
我通过从构造函数中删除 public auth: AuthService
解决了这个问题。
我认为这里造成问题的原因是 HttpInterceptor 和 AuthService 都注入了 HttpClient。
如果有人有兴趣查看有关类似问题的更多信息,请在此处查看
https://github.com/angular/angular/issues/18224