私はVSコードで複数言語のAngular4アプリケーションを開発しています。Angular + TypescriptのVSコードでルーティングするコード
ルータはこのようにする必要があり:
import { ActivatedRoute } from '@angular/router';
export class TranslateHelper {
private currentLanguage: string;
private defaultLanguage = 'de-de';
constructor(private route: ActivatedRoute) {}
public getCurrentLanguage() {
this.route.params.subscribe(params => {
this.currentLanguage = params.lang;
});
return this.currentLanguage;
}
}
アプリルーティング:私はTranslateHelperというクラスを持っている
はlocalhost/EN-US /ビジョン
。モジュール:
const routes: Routes = [
{ path: ':lang/visions', component: VisionsComponent},
];
と私はURLに言語を追加しようとしていますフッターに:
export class FooterComponent implements OnInit {
public lang;
constructor(private translateHelper: TranslateHelper) { }
ngOnInit() {
this.lang = this.translateHelper.getCurrentLanguage();
}
}
HTML:
<li><a [routerLink]="[lang, 'visions']">Visions</a></li>
、私はどんな失敗を受信しませんが、フッターにlangは常に定義されていませんparams.langとまったく同じです。
誰でも教えてください。どのように修正できますか?とにかくありがとうございました。
正確にはどういう意味ですか?私はあなたの答えを理解していませんでした –
'返すthis.currentLanguage'は、購読の内側にあるべきです – trichetriche
の上のちょうど2本の行それはどちらもうまくいきません。あなたはサブスクリプションから何かを返すことはできません。 – Chrillewoodz