我有以下代码,但我仍然试图掌握Angular UI路由器。我有一个父状态,以便我可以使用resolve
调用一个函数并将其应用于它的所有子节点。我的问题是,此代码create-prealert.html
未显示,EnterDataController
未触发。
正在发生的是两个警报都在发生,然后再没有了。
删除父状态或删除parent : app,
后,我可以确认一切正常。
在我失踪的情况下,是否存在一些根本性的东西?
我觉得不需要其他代码,因为在没有尝试父母状态的任何事情时,每件事情都是完美的。
编辑:我也可以确认它与任何一个州的resolve
无关。我试过没有它们仍然是同样的问题。
$stateProvider
.state('app', {
controller: 'MainController as data',
resolve: {
checkAuth: ['Auth','$timeout',function(Auth, $timeout){
return $timeout(function(){
alert('This is the alert for the parent state');
}
, 500
);
}]
}
})
.state('prealert', {
parent : 'app',
url: '/create-prealert',
templateUrl: 'views/create-prealert.html',
controller: 'EnterDataController as data',
resolve: {
checkAuth: ['Auth','$timeout',function(Auth, $timeout){
return $timeout(function(){
alert('This is the alert for the child state');
}
, 500 ...loading...
);
}]
}
})
.state('received', {
url: '/received',
templateUrl: 'views/received.html',
controller: 'EnterDataController as data'
});
});
答案 0 :(得分:0)
我解决了这个问题,至少到了解我发生了什么事情的程度。
我尝试使用其他模板来查看会发生什么,并且一旦有模板加载就意识到一切都很好。
然后我创建了一个包含<div ui-view></div>
的parent.html文件,并且它有效。我不禁想到我接近这一切都错了。但它无论如何都为我工作。
.state('app', {
templateUrl: 'views/parent.html',
controller: 'MainController as data',
resolve: {
checkAuth: ['Auth','$timeout',function(Auth, $timeout){
return $timeout(function(){
alert('This is the alert for the parent state');
}
, 500
);
}]
}
})