2017-01-10 10 views
0

で$リソースのカスタムメソッドを呼び出す方法:私は工場を持っているコントローラ

myServiceという:

searchController:

​​その後

'use strict'; 
app.factory('myService', ['$resource', 'ngAuthSettings', function ($resource, ngAuthSettings) { 
    var serviceBase = ngAuthSettings.apiServiceBaseUri; 

    return $resource(serviceBase + 'api/category/', {}, { 
    update: { 
     method: 'PUT' 
    }, 
    getAllByCategory: { 
     url: serviceBase + 'api/category/GetAllByCategory', 
     method: 'GET', isArray: true 
    } 
    }); 
}]); 

私は、コントローラを持っています

W私のmodel.adsは常に未定義ですか?これはコントローラの$resourceカスタムメソッドを呼び出す正しい方法ではありませんか?応答として

+0

、非常にすぐにので、それが起こって割り当てをリソース追加した後、約束/アクションでそれを入れています。私はそのデータを返すAPIにエラーがあると推測しています。あなたのクロムの 'ネットワーク'タブをチェックしてください。 API – tanmay

+0

@ tanmayによって返されるものを参照してください。フィドラーを使用してWebApiをチェックしましたが、完全に機能しています。 –

答えて

0

は少し時間がかかるかもしれませんが、私はあなたがカスタムリソースを呼び出すための正しい方法を使用していると思う

'use strict'; 
    app.controller('searchController', ['ngAuthSettings', '$scope', 'myService', '$routeParams', '$location', 
     function (ngAuthSettings, $scope, myService, $routeParams, $location) { 
      function init() { 
       var search = $location.search(); 
       var keywords = search.keywords;    
       var model = myService.getAllByCategory({ categoryId: 2, page: $routeParams.page }, 
        function() { 
         $scope.categoryAds = model.ads; 
         $scope.bigTotalItems = model.totalCount; 
         $scope.maxSize = ngAuthSettings.maxPagingSize; 
        } 
       ); 

      } 
      init(); 
     } 
    ]); 
+0

それは面白いですが、なぜmyService.query()がうまく動作しないのですか? –

関連する問題