2016-05-02 3 views
0

Я изучаю Angular и строю службу, которая использует $ resource для работы с данными. Я могу использовать query() для получения списка данных, но теперь я хотел отфильтровать его только на список конкретных элементов. Я создал метод в моем MVC-коде asp.net для вызова, он принимает 2 параметра (sectionId и typeId), но я не вижу метод, вызываемый угловым. Мои контрольные точки никогда не попадают в мой код asp.net. Моя Угловая вызов ниже:

(function() { 
'use strict'; 

testModule.factory('InventoryRepository', ['$resource', InventoryRepository]); 

function InventoryRepository($resource) { 
    return { 
     get: function (sectionType, typeId) { 
      return $resource('/mySite/GetInventoryGrid/:sectionType/:typeId', {sectionType: '@sectionType', typeId: '@typeId'}, { 
       query: {method: 'GET', isArray:true} 
      }).query(); 
     }, 
     save: function (inventoryItem) { 
      return $resource('/mySite/SaveInventoryItem').save(inventoryItem); 
     }, 
     remove: function (inventoryItem) { 
      return $resource('/mySite/RemoveInventoryItem').save(inventoryItem); 
     } 
    } 
} 
})(); 

Сохранить и удалить методы работают хорошо, я просто не знаю, как получить запрос для работы с параметрами. этот результат затем возвращается к моему вызывающему контроллеру:

vm.Inventories = InventoryRepository.get(sectionType, typeId); 

Я вижу вызов делает работу в моих срывов в Chrome действительно попадают в методе GET в InventoryRepository. С помощью Fiddler я вижу вызов, сделанный с возвратом 500, кажется, что он не прошел параметры.

Update, я установил ее, изменив следующее: от моего контроллера:

vm.Inventories = InventoryRepository.get({ sectionType: sType, typeId: typeId}); 

и мой метод обслуживания добраться до:

  get: function (params) { 
      return $resource('/mySite/GetInventoryGrid?sectionType=:sectionType&typeId=:typeId', { sectionType: '@sectionType', typeId: '@typeId' }, { 
       query: {method: 'GET', isArray:true} 
      }).query({ sectionType: params.sectionType, typeId: params.typeId}); 
     }, 

Я не понимаю, что вызов метода прибудете объединил 2 парама в 1 объект, когда он был передан в get.

ответ

1

Вы не передаете параметр query().

get: function (sectionType, typeId) { 
    return $resource('/mySite/GetInventoryGrid/:sectionType/:typeId', {sectionType: '@sectionType', typeId: '@typeId'}, { 
     query: {method: 'GET', isArray:true} 
    }).query({sectionType: sectionType, typeId: typeId}); 
      ///^^^^^^^^ 
}, 
+0

Я собираюсь обновить свой вопрос исправлением. – Paritosh

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