使用角度资源覆盖URL无效

时间:2019-02-25 22:23:37

标签: angularjs angular-resource

我正在使用角度资源以便从我的AP中检索记录。
以下是我相关的控制器信息。

$scope.formInformation = formService.get({id:$state.params.form_id });

以下是我的服务

    (function(){
        "use strict";

        angular
        .module("mainAppModule")
        .factory("formService", formService);

        function formService($resource)
        {
            return $resource(apiLink + 'form/:id',
                //{id: '@_id'}, //this breaks it
                {
                    'query' : {
                    method: 'GET',
                    isArray: true,
                    }
                },
                {
                    'get' : {
                    method: 'GET',
                    url: apiLink + 'form/individualForm/:id',


                    }
                }
            );
        }
    })();

当我尝试覆盖url变量时,它仍然使用原始变量。

"apiLink +"form/:id" 

相对

apiLink + 'form/individualForm/:id',

,应由以下行覆盖。

 url: apiLink + 'form/individualForm/:id',

但是当我删除时。

{id:'@id'},

我的网址被覆盖。
我想了解为什么会这样。
我正在使用角度和角度资源版本1.7.7。

1 个答案:

答案 0 :(得分:1)

actions参数格式错误:

    function formService($resource)
    {
        return $resource(apiLink + 'form/:id',
            //{id: '@_id'}, //this breaks it
            {
                'query' : {
                method: 'GET',
                isArray: true,
                }
            ̶ ̶}̶,̶
            ̶{̶
                'get' : {
                method: 'GET',
                url: apiLink + 'form/individualForm/:id',

                }
            }
        );
    }

actions参数应该是所有资源操作的哈希。当动作分布在两个对象上时,只有第一个对象会覆盖默认对象。 get的动作声明被忽略,并使用默认值。