我在Chrome中对此进行了测试,并在$scope.init
的{{1}}中添加了一个中断
但是当我从Ctrl2
转到route2
时,Chrome调试器保持在route1
的{{1}},但我看到$scope.init
仍在那里。
Ctrl2
那么,ui-router如何工作?是不应该转到ctrl1.html
,然后执行.state("main.route1", {
url: "/route1",
controller: 'Ctrl1',
templateUrl: 'views/ctrl1.html'
})
.state("main.route2", {
url: "/route2",
controller: 'Ctrl2',
templateUrl: 'views/ctrl2.html'
})
?为什么输入ctrl2.html
但Ctrl2
仍然显示?
我不确定Ctrl2
中是否相同,我没有测试过。
答案 0 :(得分:0)
将以下run
块添加到模块以捕获状态更改错误
.run(function ($rootScope, $state) {
$rootScope.$on('$stateChangeStart',
function(event, toState, toParams, fromState, fromParams){
console.log(fromState.name + ' to ' + toState.name);
});
$rootScope.$on('$stateChangeError',
function (event, toState, toParams, fromState, fromParams, error) {
alert(error);
event.preventDefault();
});
});