2
我有一個管道解析消息密鑰並相應地返回消息到語言環境。Angular 2讓它等待服務初始化
但我想角等待直到我的服務將完成它的加載消息,並且只有在那之後繼續呈現主頁面。我的本地化管道在哪裏使用。 如何讓它工作?
服務:
@Injectable()
export class I18nService implements OnInit {
private cachedMessages: {string: string};
activeLocale:I18Enum = null;
constructor(private http: Http) {
this.reloadLocale(I18Enum.ru);
}
ngOnInit(): void {
this.reloadLocale(I18Enum.ru);
}
getMessage(key: string) {
if (this.cachedMessages) {
return this.cachedMessages[key];
}
}
reloadLocale(locale: I18Enum) {
this.activeLocale = locale;
this.http.get(basePath + i18nPath + I18Enum[locale]).subscribe(
res => {
this.cachedMessages = res.json();
}
);
}
}
和管道:
@Pipe({name: 'i18nPipe'})
export class I18nPipe implements PipeTransform {
constructor(private i18Service: I18nService) {
}
transform(value: any, args: any): any {
return this.i18Service.getMessage(value);
}
}
可能複製[如何將從後端呈現的參數傳遞給angular2引導方法](http://stackoverflow.com/questions/37611549/how-to-pass-parameters-rendered -from-後端到angular2的自舉方法) – estus