Ich entwickle eine mehrsprachige Angular4-Anwendung mit VS-Code.Routing mit Sprache in Angular + Typescript VS Code
Der Router hat so sein:
localhost/en-us/Visionen
ich eine Klasse namens TranslateHelper haben:
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;
}
}
die App-Routing. Modul ist:
und in der Fußzeile Ich versuche, die Sprache in der URL hinzuzufügen:
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>
ich nicht erhalten jeden Fehler, aber die lang in der Fußzeile ist immer undefiniert, genau wie die params.lang ist.
kann mir jemand sagen, wie kann ich es beheben? trotzdem danke.
was genau meinst du? Ich habe deine Antwort nicht verstanden –
'zurück this.currentLanguage' sollte innerhalb des Abonnierens sein, nur ein paar Zeilen über – trichetriche
Das wird nicht funktionieren, also nicht stören. Sie können etwas aus einem Abonnement nicht zurückgeben. – Chrillewoodz