Es gibt einen Routenparameter, der die aktuelle Site-Sprache darstellt, die im abstrakten app
-Status definiert ist.
angular.module("app", ["ui.router"]).config(["$stateProvider",
function($stateProvider) {
$stateProvider
.state('main', {
url: '/:lng',
abstract: true,
template: '<div ui-view></div>'
})
.state('main.index', {
url: '/',
template: '<span>Index</span>'
})
.state('main.gallery', {
url: '/gallery',
template: '<span>Gallery</span>',
})
}
]);
Vorerst jedes Mal anrufen $state.go
, ich habe die lng
Eigenschaft auf die Route param Liste hinzuzufügen, wie
$state.go('main.index', { lng: 'en' });
obwohl der aktuelle Wert von lng
ist en
Gibt es trotzdem die lng
die gleiche wie der vorherige Zustand bleiben, es sei denn, wir ändern es explizit, indem Sie es an die Route-Parameter übergeben Liste?
Danke für die Antwort zu finden. Aber ich möchte den Param-Wert des vorherigen Zustands beibehalten, anstatt den Standardzustand zu verwenden. –
Ah, ich entschuldige mich für das falsche Lesen. Warum erstellen Sie nicht einfach einen Wrapper-Service für $ state, indem Sie eine Methode erstellen, die ein params-Objekt akzeptiert und dann $ state.go mit den übergebenen Parametern aufruft und alle ausgelassenen aus $ stateParams für den Zustand, den Sie verlassen, ausfüllt? – kpup