2014-09-23 3 views
1

У меня есть пользовательский ресурс, определенный как таковой:AngularJS Пользовательский URL ресурса перезапись

app.factory('SpaceGroupService', ['$resource', function ($resource) { 
return $resource('api/SpaceGroup/:id', { id: '@id'}, 
{ 
    'parkingSpaces': { method: 'GET', url: 'api/SpaceGroup/:id/ParkingSpaces', isArray: true } 
}); 
}]); 

Идея заключается в том, чтобы пройти в ID моего объекта пр.гр. вернуть все парковочные места в этой группе. Когда я называю

SpaceGroupService.query() 

Во время работы на моем местном iisexpress это ударяя правильный URL службы: /апи/кристаллографической группа

Но когда я делаю:

spaceGroup.$parkingSpaces({ id: spaceGroup.SpaceGroupId }, function (parkingSpaces) { 
       spaceGroup.parkingSpaces = parkingSpaces; 
      }); 

Это запрашивая мое успокоительное обслуживание как: /api/SpaceGroup/2

вместо: /api/SpaceGroup/2/ParkingSpaces

Я немного новичок в angularJS, и я знаю, что мой маршрут работает на моем контроллере API, поэтому я просто пытаюсь заставить эту службу работать правильно. Любые идеи, почему этот перезаписанный URL-адрес не вызывается?

ответ

0

Я бы написать службу, как это вместо:

app.factory('SpaceGroupService', ['$resource', function ($resource) { 
return 
{ 
    ParkingSpaces: $resource('api/SpaceGroup/:id/ParkingSpaces', {}, 
    { 
     query: { method: 'GET', params: { id: '@id'}, isArray: true } 
    } 
} 
}]); 

А затем вызвать его, как это вместо:

SpaceGroupService.ParkingSpaces.query({ id: someId }); 

Вы можете настроить несколько ресурсов в службе этот путь - и вы также можете определить несколько методов (GET, POST, PUT, DELETE). Это также означает, что Angular будет соблюдать ваш URL-адрес ресурса.

Смежные вопросы