这就是我所拥有的。我需要在categories
和HomeController
上提供NavbarController
。
$stateProvider
.state('master', {
abstract: true,
views: {
'navbar@': {
templateUrl: 'views/partials/navbar.default.html',
controller: 'NavbarController as nb',
}
},
resolve: {
categories: function(Category) {
return Category.getList({ depth: 0 });
},
}
})
.state('home', {
parent: 'master',
url: '/',
views: {
'main@': {
templateUrl: 'views/home/home.html',
controller: 'HomeController as hc',
}
},
resolve: {
deals: function(Deal) {
return Deal.getList();
},
}
});
答案 0 :(得分:0)
子状态将从父状态继承已解析的依赖关系,它们可以覆盖它们。然后,您可以将已解析的依赖项注入控制器并解析子状态的功能。
$stateProvider.state('parent', {
resolve:{
resA: function(){
return {'value': 'A'};
}
},
controller: function($scope, resA){
$scope.resA = resA.value;
}})
.state('parent.child', {
resolve:{
resB: function(resA){
return {'value': resA.value + 'B'};
}
},
controller: function($scope, resA, resB){
$scope.resA2 = resA.value;
$scope.resB = resB.value;
}
它还声明:
resolve关键字必须相对于state而不是视图(如果你使用多个视图)。 如果要在实例化子项之前等待解析promise,则必须将解析键注入子状态。