2 回答

TA贡献1921条经验 获得超9个赞
将承诺保存在父控制器中:
$scope.promise = patentsRestService.fetchAllPatents();
$scope.promise.then(
function(response){
var patents = response;
$scope.portfolioLoaded = true;
}
)
在子控制器中使用承诺:
function init() {
$scope.$parent.promise.then(function() {
$scope.parentLoaded = true;
});
}
这将适当延迟设置。

TA贡献1884条经验 获得超4个赞
将父状态的调用移动到resolve:
.state('portfolio', {
url: '/portfolio',
templateUrl: 'app/templates/portfolio/portfolio.tpl.htm',
controller: 'portfolioCtrl',
controllerAs: '$ctrl',
resolve: {
patentData: function(patentsRestService){
return patentsRestService.fetchAllPatents()
}
}
})
它总是会在子状态加载之前解决
阅读更多:https : //github.com/angular-ui/ui-router/wiki#resolve
添加回答
举报