因此,我使用的是有角度的材料,并且有一个旋转器工作正常。
但是现在我也有i18的翻译。我除了要在每个http请求上设置微调框,还要在微调框下显示特定消息。
所以我有一个loaderServce:
Object.getPrototypeOf(this).constructor.createObj()
和拦截器:
@Injectable({
providedIn: 'root'
})
export class LoaderService {
loaderState = new Subject<boolean>();
constructor() {}
show() {
this.loaderState.next(true);
}
hide() {
this.loaderState.next(false);
}
}
,然后显示微调框的实际组件:
export class LoaderInterceptorService implements HttpInterceptor {
constructor(private loaderService: LoaderService) { }
intercept(req: HttpRequest<any>,next: HttpHandler): Observable<HttpEvent<any>> {
this.showLoader();
return next.handle(req).pipe(tap((event: HttpEvent<any>) => {
if (event instanceof HttpResponse) {
this.onEnd();
}
},(err: any) => {
this.onEnd();
}));
}
private onEnd(): void {
this.hideLoader();
}
private showLoader(): void {
this.loaderService.show();
}
private hideLoader(): void {
this.loaderService.hide();
}
}
和ts代码:
<app-loader></app-loader>
<button mat-raised-button color="accent" (click)="saveAndPublish()" [disabled]="form.invalid">Save & Publish</button>
<button mat-raised-button color="primary" (click)="save()" [disabled]="form.invalid">Save</button>
<form [formGroup]="form" >
<app-node-tree-input formControlName="nodes"></app-node-tree-input>
</form>
但是消息没有以这种方式显示。
所以我的问题是:如何显示翻译后的消息?
谢谢
所以,如果我这样做:
save() {
const model = this.getSubmitModel();
if (model) {
this.schemaTemplateService.createVersion(model.name,model)
.subscribe((schema) => {
this.i18n('Saving & Publishing...');
console.log('schema',schema);
// TODO feedback
});
}
}
我看到控制台消息:
save() {
const model = this.getSubmitModel();
if (model) {
this.schemaTemplateService.createVersion(model.name,model)
.subscribe((schema) => {
console.log(this.i18n('Saving & Publishing...'));
console.log('schema',schema);
// TODO feedback
});
}
}
但它没有显示在模板(html)