我试图让toState
对象url
在$stateChangeStart
事件的状态basic.tasks
:toState.url值不是嵌套状态
$rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams) {
...
console.log(toState.name); // > basic.tasks
console.log(toState.url); // > /tasks
...
}
国家配置:
$stateProviderRef
.state('basic',{
url: '/b',
template: require('source/basic/templates/basic.html'),
controller: 'BasicController',
abstract: true
})
.state('basic.tasks', {
url: '/tasks',
template: require('source/basic/templates/tasks/tasks.html'),
controller: 'TasksController',
})
toState.url的值是/tasks
而不是/b/tasks
。有没有办法获得包括父状态在内的完整散列。
我尝试使用$window.location.hash
,但它只给出fromState
的完整散列路径,因为它在状态更改完成之前不会更新。
您可以将引号添加到'BasicController'并重试吗?可能是第一个状态是由JS正确解释的 – Zakaria
不好意思,这不是问题。我只是在这个问题中错过了控制器名称的引用。我会编辑它。 –