我有一个决心在我的路由器工作,但我只是退回的承诺,所以我不知道它的成功或失败.这是我有的
.when('/items',{ templateUrl: 'views/items.html',controller: 'ItemsCtrl',resolve: { resolvedData: function(Restangular){ return Restangular.one('Items').get(); } } })
现在这样做有效,但是如何检测成功或失败…我可以在解决方法中输入,但是我会在成功和失败中返回什么…记住我需要在控制器中注入项目.
.when('/items',{ templateUrl: 'views/items.html',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; } ] }
我真的很感谢任何人有任何帮助.
我真正想要做的是在控制器中将已解析的变量注入到控制器中,如果失败,那么我也想访问控制器中的故障,所以我可以向用户显示这是不可能的由于问题造成的.
你可以返回当时方法的返回值:
resolve: { resolvedData: function(Restangular){ return Restangular.one('Items').get().then(function (data) { ... return successData; // resolvedData will be resolved with the successData },function () { ... return failureData; // resolvedData will be resolved with the failureData }); } }
This method returns a new promise which is resolved or rejected via the return value of the successCallback or errorCallback.