Создать общее угловое действие ресурса для большего количества объектов

0

Я использую угловой ресурс с разными сущностями, и я должен вызвать для каждого из этих объектов некоторые пользовательские методы с настраиваемыми URL-адресами.

Например:

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);

Таким образом, obviusly, customMethod будет работать только на entity1, потому что URL-адрес не является общим. Как я могу создать пользовательское действие без определения URL-адресов, как это было при создании действия?

благодаря

Теги:
angular-resource

2 ответа

0

вы можете использовать несколько переменных при использовании $ resource. замещать

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

с

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

и используйте соответствующие параметры при вызове функции $ resource.

  • 0
    Мне не нравится решение, в котором мне нужно вызвать: Resource.customMethod ({entity: 'resource', id: '7'}).
0

Добавьте параметр действия для настраиваемого метода и URL-адреса:

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);
  • 0
    таким образом, как angular-resource создает URL-адрес конечной точки?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню