路线配置:
$stateProvider.state('root', {
url: "/",
template: '<div ui-view></div>'
})
.state('root.child',{
url: '/child',
templateUrl: 'some.html'
controller: function(){
console.log('child')
}
});
StateChangeStart监听器:
$scope.$on('$stateChangeStart', function (event, state, params, fromState, fromParams) {
console.log('state change start');
}
});
当我导航到状态'root.child'时,首先在控制台上打印'状态更改开始',然后打印'child'。 但是当我在子状态下刷新页面或直接点击网址'/ child'时,首先打印'child'然后打印'state change start'。请帮忙。
答案 0 :(得分:0)
您需要先致电event.preventDefault();
。
为了您的兴趣,如果您想在$state
内运行$stateChangeStart
,则无法使用。这是一个众所周知的问题。