【问题标题】:AngularJs ngResource factory. Var returning function instead of promiseAngularJs ngResource 工厂。 Var 返回函数而不是 promise
【发布时间】:2015-10-28 03:02:46
【问题描述】:

我正在编写一个使用两组数据的角度工厂。我需要一组数据来等于一个变量,这样我就可以在另一个 API 调用中传递它。出于某种原因,我的变量总是返回整个函数,而不仅仅是返回变量。所有环境变量都可用。

var zones = function(){
            var deferred = $q.defer();
            $resource(ENV.web_api_url + ENV.api_version + '/zones/:zoneId', {}, {
                query: {
                    method: 'GET',
                    cache: false,
                    params: {zoneId: '@zoneId', date: $filter('date')(new Date(), "yyyy-MM-dd")},
                    isArray: true,
                    headers: {
                        "X-Auth-Token": $window.sessionStorage.token
                    }
                }
            }).success(function(data){
                deferred.resolve(data);
            }).error(function(){
                deferred.reject('There was an error')
            });
            return deferred.promise;
        };

【问题讨论】:

    标签: angularjs ngresource


    【解决方案1】:

    你不需要自己的承诺来使用 ng-resource:

    var zones = function(){
    return $resource(query : {...}).query();
    }
    

    【讨论】:

    • 如果我这样做,它什么也不会返回
    【解决方案2】:

    您定义一个资源并在实际资源上调用“.success()”,而不是在调用 GET 时。这是你应该做的:

    var res = $resource(ENV.web_api_url + ENV.api_version + '/zones/:zoneId', {}, {
                query: {
                    method: 'GET',
                    cache: false,
                    params: {zoneId: '@zoneId', date: $filter('date')(new               Date(), "yyyy-MM-dd")},
                    isArray: true,
                    headers: {
                        "X-Auth-Token": $window.sessionStorage.token
                    }
                }
            });
            res.get(null, function(data){
                deferred.resolve(data);
            },function(){
                deferred.reject('There was an error')
            });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 2017-10-31
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多