Я хочу получить доступ к имени родительского состояния при обнаружении изменения состояния. Мой код до сих пор:
app.run(function($rootScope, $state, authProvider) {
$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) {
console.log(toState.name);
});
});
[parentState.childState]
Возвращает. Одна из возможностей - использовать регулярное выражение для замены каждого символа, который появляется после «.». но я предполагаю, что в ui-router должна быть функция для получения имени родительского состояния.
Что мне нужно добавить? получить [parentState]
?
Пример: Пользователь отправлен из штата login
в состояние pets.dogs
. pets
является абстрактным родительским состоянием, dogs
является его потомком. fromState.name
вернет login
, но я хочу pets
.
EDIT: Да, обходной путь toState.name.split(".")[0]
возможен, но работает только в контролируемых условиях.
'fromState.name' будет работать. – Rakeschand
Мне не нужно состояние, в котором пользователь приходит, но состояние, на которое toState является дочерним. Например, пользователь приходит от 'login' к 'pets.dogs'. «Домашние животные» - это абстрактное родительское состояние. 'fromState.name' вернет' login', но я хочу 'pets'. – trahloff
Если имена являются относительными, вы можете манипулировать строкой имени и узнать. Я не знаю, есть ли какая-либо функция или нет. – Rakeschand