【发布时间】:2013-07-18 13:03:42
【问题描述】:
我已经解决了我的路由提供程序,但我只是返回了承诺,所以我不知道它是成功还是失败。这就是我所拥有的
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
return Restangular.one('Items').get();
}
}
})
现在这确实有效,但我如何检测成功或失败。我可以在 resolve 方法中输入这个,但是在成功和失败中我会返回什么。记住我需要将项目注入到我的控制器中。
.when('/items', {
templateUrl: 'views/items.html',
controller: 'ItemsCtrl',
resolve: {
resolvedData: function(Restangular) {
Restangular.one('Items').get().then(function(data) {
// success
}, function() {
// failure
});
}
}
})
我确实在这里看到了一个示例,但我很困惑这是否是我需要的以及如何使用它?
AngularJS - rejected $http promise with $routeProvider:resolve
它似乎正在返回一个手动承诺。
resolve: {
response: ['Warranty'
'$q',
function(Warranty, $q) {
var dfd = $q.defer();
Warranty.sendRequest().then(function(result) {
dfd.resolve({
success: true,
result: result
});
}, function(error) {
dfd.resolve({
success: false,
reason: error
});
});
return dfd.promise;
}
]
}
我真正想做的是在我的控制器中将已解析的变量注入控制器,如果它失败了,那么我也想访问控制器中的故障,以便向用户显示它不是'由于问题无法呈现。
【问题讨论】:
标签: angularjs angularjs-routing