我有一个决心在我的路由器工作,但我只是退回的承诺,所以我不知道它的成功或失败.这是我有的
- .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.