首页 > 解决方案 > 使用角度资源覆盖 URL 不起作用

问题描述

我正在使用角度资源从我的 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。

标签: angularjsangular-resource

解决方案


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被忽略并使用默认值。


推荐阅读