2017-07-04 40 views
0

調用$資源服務從控制器這是獲得服務功能whre我調用API如何在angularJs

.factory('Report', function($resource, API_URL) { 
     return $resource(API_URL + 
     'security/:userId/1498780800000/listOfDeliveries', { 

     userId : '@userId', 
     expected : '@expected', 
     arg1 : '@arg1' 
    }, { 
     update: { 
     method: 'PUT' 
     } 
    }); 
    }) 

在app.js我有這個低於控制器

.controller('ReportsController', function($scope, $rootScope, 
    ProfileData, $state, $timeout, Report) { 


}) 

回答

1

第一一切,你需要check how angular factory & service work.

你的工廠返回$資源,所以閱讀doc about $resource

資源「class」對象,其中包含缺省資源集合方法 可以使用自定義操作進行可選擴展的操作。默認設置 包含以下操作:

{ 
    'get': {method:'GET'}, 
    'save': {method:'POST'}, 
    'query': {method:'GET', isArray:true}, 
    'remove': {method:'DELETE'}, 
    'delete': {method:'DELETE'} 
}; 

所以,你可以使用論文的方法:Report.get(),Report.save(),Report.query(),Report.remove(),報告.delete()

此外,還有你定義的自定義方法:Report.update()

而且,您可以通過用戶ID作爲PARAMS這樣:

Report.get({userId: 1234});將調用一個GET請求:API_URL+'security/1234/1498780800000/listOfDeliveries

expectedargs1不是URL,所以我不認爲你需要他們)

什麼返回Report.get()?

類操作返回空實例(具有下面的其他屬性)。實例的操作返回行動承諾

所以Report.get(...)返回一個承諾,你將獲得由數據:

Report.get(...).then(function(data) { 
    $scope.requestData = data; 
}); 
+0

感謝Fetra ..它的工作..可我知道如何動態傳遞此時間戳參數 – Bhavani

+0

是的,你可以添加像用戶id一個params中,預計: 收益$資源(API_URL + 的安全/:用戶名/:時間戳/ listOfDeliveries',{ 用戶名: '@userId', 時間戳: '@timestamp' ,.... – Fetrarij

+0

我有添加參數時間戳。我是混合應用程序開發新手。你能解釋我爲什麼下面的代碼不起作用嗎? – Bhavani