AngularJS:在RouteProvider中解决 – 检测成功/失败?

前端之家收集整理的这篇文章主要介绍了AngularJS:在RouteProvider中解决 – 检测成功/失败?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个决心在我的路由器工作,但我只是退回的承诺,所以我不知道它的成功或失败.这是我有的
.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
            });
    }
}

那么方法doc

This method returns a new promise which is resolved or rejected via the return value of the successCallback or errorCallback.

猜你在找的Angularjs相关文章