如何从angularJs中的控制器调用$resource服务
这是get服务函数,我在这里调用API如何从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'
.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;
});