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

如何从angularJs中的控制器调用$resource服务,angularjs,ionic-framework,hybrid-mobile-app,ngresource,Angularjs,Ionic Framework,Hybrid Mobile App,Ngresource,这是get服务函数,我在这里调用API .factory('Report', function($resource, API_URL) { return $resource(API_URL + 'security/:userId/1498780800000/listOfDeliveries', { userId : '@userId', expected : '@expected', arg1 : '@arg1'

这是get服务函数,我在这里调用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) {


})

首先,你需要

您的工厂返回$resource,因此请阅读

一个资源“类”对象,包含默认资源集的方法 可以选择使用自定义操作扩展操作。默认设置 包含以下操作:

因此,您可以使用以下方法:Report.get()、Report.save()、Report.query()、Report.remove()、Report.delete()

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

您可以将userId作为参数传递,以便:

Report.get({userId:1234})
将调用GET请求到:
API_URL+'security/1234/14987800000/listOfDeliveries

expected
args1
不在url中,因此我认为您不需要它们)

返回了什么报告。get()?

类操作返回空实例(具有以下附加属性)。实例操作返回操作的承诺

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

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

谢谢费特拉。。它起作用了。。我想知道如何动态地传递这个时间戳参数yyes,您可以添加一个参数,比如userId或expected:return$resource(API_URL+'security/:userId/:timestamp/listOfDeliveries',{userId:'@userId',timestamp:'@timestamp',..我已经添加了param timestamp..我是混合应用程序开发的新手。你能解释一下为什么下面的代码不起作用吗。$scope.requestData={expectedDateDate:'14988080000'};$scope.residents=Report.get({userId:Safence_app.userId},{timestamp:requestData.expectedDateDate});它不是来自混合应用程序,而是角度。你应该真正阅读我从$resource给你的链接,它将返回一个承诺,还有我给你的官方网站的示例。我正在编辑答案以帮助你。
Report.get(...).then(function(data) {
  $scope.requestData = data;
});