AngularJS ui路由器不适用于子状态
我正在努力让儿童状态正常工作 当我测试相应的URL时,这些状态中的每一个都显示得很好。但有一个问题AngularJS ui路由器不适用于子状态,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在努力让儿童状态正常工作 当我测试相应的URL时,这些状态中的每一个都显示得很好。但有一个问题 app.config(['$stateProvider', function($stateProvider) { $stateProvider.state('root', { // works 100% url: '/', controller: function($scope) { alert("state: root"); }, template
app.config(['$stateProvider', function($stateProvider) {
$stateProvider.state('root', { // works 100%
url: '/',
controller: function($scope) {
alert("state: root");
},
templateUrl: 'root.html'
})
.state('program', { // works 100%
url: '/program',
controller: function($scope) {
alert("state: program");
},
templateUrl: 'program.html'
})
.state('program.new', { // works only sorta!
url: '/new',
controller: function($scope) {
alert("state: program.new");
},
templateUrl: 'program.new.html'
});
}]);
…对于program.new,正在选择正确的状态(我正在使用此:)在调试器中记录转换,但只有警报(“状态:program”)触发,而不是警报(“状态:program.new”)。另外,将显示program.html模板,而不是program.new.html模板
子状态的控制器没有机会运行吗?为什么孩子的模板没有出现
需要说明的是,Angular正在计算正确的状态program.new。它似乎没有运行控制器或呈现模板。找到了答案:program.html模板中没有指令,因此子状态program.new无法呈现到。。。并且控制器仅在视图要渲染时运行。事实上,似乎有更多情况下控制器部分被忽略。。。如果您使用ui路由器命名视图,那么整个状态的控制器部分将被忽略,但您可以在每个命名视图中放置一个控制器部分!