2
すべてのページの翻訳タイトルを表示する必要があります。翻訳された動的ページタイトルをルータイベントのAngular 2で表示
私は、コードの上に実装され、以下のようにsubscribe()
に翻訳を追加しました:
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/mergeMap';
import { TranslateService } from '@ngx-translate/core';
import { Component, OnInit } from '@angular/core';
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
import { Title } from '@angular/platform-browser';
@Component({...})
export class AppComponent implements OnInit {
constructor(
private translate: TranslateService,
private router: Router,
private activatedRoute: ActivatedRoute,
private titleService: Title
) {}
ngOnInit() {
this.router.events
.filter((event) => event instanceof NavigationEnd)
.map(() => this.activatedRoute)
.map((route) => {
while (route.firstChild) route = route.firstChild;
return route;
})
.filter((route) => route.outlet === 'primary')
.mergeMap((route) => route.data)
.subscribe((event) => this.titleService.setTitle(this.translate.instant(event['title']));
}
}
と私はタイトルとして、翻訳のための鍵を渡していますモジュールのルーティングに:それはで正常に動作している
const routes: Routes = [
{ path: 'buildings', component : BuildingsComponent, data : {title : 'BUILDINGS' }}
];
を通常の場合。しかし、ページの更新では、タイトルを翻訳していません。サブスクライバでevent['title']
が更新されています。
解決方法がわかりません。 助けてください。
感謝:)公式ドキュメントからTranslateService
のinstant
方法の