如何在angularJs中从控制器调用$ resource服务

时间:2017-07-04 16:59:04

标签: angularjs ionic-framework hybrid-mobile-app ngresource

这是获取服务功能,我正在调用API

    .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 个答案:

答案 0 :(得分:1)

首先,您需要check how angular factory & service work.

您的工厂退回$资源,请阅读doc about $resource

  

资源"类"具有默认资源集的方法的对象   可选择使用自定义操默认设置   包含这些行动:

{ 
   '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(),Report.delete()

此外,您还定义了自定义方法:Report.update()

你可以将userId作为参数传递给:

Report.get({userId: 1234});会调用GET请求:API_URL+'security/1234/1498780800000/listOfDeliveries

expectedargs1不在网址中,因此我认为您不需要它们。

返回Report.get()的内容是什么?

  

类操作返回空实例(下面有其他属性)。实例操作返回操作的承诺

因此Report.get(...)正在返回一个承诺,您将通过以下方式获取数据:

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