Ich möchte auf den Namen des übergeordneten Status zugreifen, wenn eine Zustandsänderung erkannt wird. Mein Code so weit:
app.run(function($rootScope, $state, authProvider) {
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) {
console.log(toState.name);
});
});
Returns [parentState.childState]
. Eine Möglichkeit wäre, Regex zu verwenden, um jedes Symbol zu ersetzen, das nach dem "." aber ich denke, dass es eine Funktion in ui-router geben muss, um den Namen des Elternstatus zu erhalten.
Was müsste ich hinzufügen? zu bekommen [parentState]
?
Beispiel: Der Benutzer kommt aus dem Zustand login
in den Zustand pets.dogs
. pets
ist ein abstrakter Elternstatus, dogs
ist ein Kind davon. fromState.name
würde login
zurückgeben, aber ich möchte pets
.
EDIT: Ja, die Problemumgehung toState.name.split(".")[0]
ist möglich, funktioniert aber nur unter kontrollierten Bedingungen.
'fromState.name' funktioniert. – Rakeschand
Ich möchte nicht den Status, aus dem der Benutzer stammt, sondern den Status, aus dem der toState ein Kind ist. Zum Beispiel kommt der Benutzer von "Login" zu "pets.dogs". "Haustiere" ist ein abstrakter Elternteil. 'fromState.name' würde' login' zurückgeben, aber ich möchte 'pets'. – trahloff
Wenn Namen relativ sind, können Sie den Namen string manipulieren und herausfinden. Ich weiß nicht, ob irgendeine Funktion verfügbar ist oder nicht. – Rakeschand