从state parents.view转换到parents.view.childs时 - 我没有看到与parent.view.childs相关联的控制器被调用/加载。但是看到getChilds()中的打印件,我看到服务器响应了子数据。
但我无法理解为什么没有调用孩子控制器。控制台上没有错误。
使用controllerAs有什么问题:'vm'在这两种状态下还是其他什么?另请指出如何调试状态转换?
角度路线文件
.state('parents.view', {
url: '/:parentId',
templateUrl: 'modules/parents/client/views/view-parent.client.view.html',
controller: 'parentsController',
controllerAs: 'vm',
resolve: {
parentResolve: getparent
},
data: {
pageTitle: 'parent {{ parentResolve.name }}'
}
})
.state('parents.view.childs', {
url: '/childs',
templateUrl: 'modules/childs/client/views/list-childs.client.view.html',
controller: 'childsListController',
controllerAs: 'vm',
resolve: {
parentResolve: getchilds
},
data: {
pageTitle: 'childs List'
}
})
getchilds.$inject = ['$stateParams', '_childsService'];
function getchilds($stateParams, _childsService) {
console.log('getting childs');
return _childsService.query().$promise;
}
控制器
(function () {
'use strict';
angular
.module('childs')
.controller('childsListController', childsListController);
childsListController.$inject = ['$stateParams','$state', 'childResolve'];
function childsListController($stateParams,$state,childResolve) {
console.log('say hello',childResolve);
vm.childs = childResolve;
}
}());
编辑:get_childs()到getchilds()
答案 0 :(得分:1)
您需要将每个解析对象作为依赖项注入相应的控制器中。
在你的childsListController中,你只注入了childResolve,而你声明的唯一解析对象是
parentResolve:getchilds
我对这种语法不是很熟悉,但问题可能就是忘记改变父母的问题。对孩子的解决方案'在parent.view.childs状态?
答案 1 :(得分:1)
得到答案:
如果未加载子,请始终检查父级是否有 地方(持有人)
ui-view=""
更好的是,如果有命名视图,我们每个都需要一个目标
ui-view="name1"
ui-view="name2"
并在子 views :{}
定义中使用正确的绝对命名。点击此处了解更多详情