为更多实体创建通用角度资源操作

时间:2016-01-25 09:35:11

标签: angularjs angular-resource

我正在使用具有不同实体的角度资源,我必须为每个实体调用一些带有自定义网址的自定义方法。

例如:

var actions = { 
    create: {
        method: 'POST'
    },
    customMethod: {
        method: 'PUT',
        url: '/api/entity1/:id/custom',
        params: {
            id: '@id'
        },
    }
}
$resource('/api/entity1/:id', null, actions);
$resource('/api/entity2/:id', null, actions);
$resource('/api/entity3/:id', null, actions);

通过这种方式,很明显,customMethod只能在entity1上工作,因为url不是通用的。 如何在不创建动作的情况下创建自定义动作而不定义URL?

由于

2 个答案:

答案 0 :(得分:0)

使用$ resource时可以使用多个变量。替换

url: '/api/entity1/:id/custom'

url: '/api/:entity/:id/custom'

并在调用$ resource函数时使用适当的参数。

答案 1 :(得分:0)

为自定义方法和网址添加操作参数:

var actions = { 
  create: {
    method: 'POST'
  },
  customMethod: {
    method: 'PUT',
    params: { action: 'custom' },
  }
}
$resource('/api/entity1/:id/:action', null, actions);
$resource('/api/entity2/:id/:action', null, actions);