私はAngularを学び、$ resourceを使ってデータを扱うサービスを構築していました。私はquery()を使用してデータのリストを取得することができましたが、今は特定の項目のリストだけにフィルターをかけたいと思っていました。私はasp.netのMVCコードでメソッドを作成しましたが、呼び出すには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);
私はコールがInventoryRepositoryのgetメソッドに入るんChromeで私の故障などの作業を行います参照してください。フィドラーを使用して私は500回の返品で行われた呼び出しを見て、それはパラメータを渡されていないようです。
更新、私は次のように変更することでそれを修正: 私のコントローラから:
へvm.Inventories = InventoryRepository.get({ sectionType: sType, typeId: typeId});
と私のサービスgetメソッド:
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});
},
私はgetメソッド呼び出しを実現していませんでしたgetに渡されたときに2つのパラメータを1つのオブジェクトに結合していました。
私は修正で私の質問を更新するつもりです。 – Paritosh