如何从调用函数控制isArray值? (修改$ resource params)

时间:2014-01-29 09:26:10

标签: angularjs angular-resource

我想知道如何在isArray中设置resource参数,因为有时我希望它是true,有时候false

这是我的资源工厂代码

dummyServices.factory('Dummy', ['$resource',
    function ($resource) {
        return $resource('http://dummyServer/dummyApp/dummyREST/:methodName', {}, {
            query: {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                isArray: false // <-- isArray: someParameter ???
            }
        });
    }]);

我这样用:

$scope.myDummyObj = Dummy.query(
        {
            methodName: 'dummyMethod'
        },
        myDummyArgument
    );

如何从isArray来电中设置Dummy.query

1 个答案:

答案 0 :(得分:5)

正如您可能已经知道的那样,$ resource从未打算成为更强大的$ http服务的替代品,因此,作者只是不打算暴露更强大且可配置的API。

也就是说,在运行时配置资源的唯一方法是将其包装在自己的自定义工厂中。但这只会让事情变得更加丑陋,IMO。

PLUNKER

app.factory('Dummy', [
  '$resource',
  function ($resource) {

    return function(config){

      return $resource('http://dummyServer/dummyApp/dummyREST/:methodName', {}, {
        query: angular.extend({
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          isArray: false // <-- isArray: someParameter ???
        }, config)
      });

    };

  }
]);

控制器:

$scope.myDummyObj = Dummy({isArray: true, method: 'GET'})
                      .query({methodName: 'dummyMethod'});