我正在学习Angularjs,在我的第一个应用程序中,我用$resource
取代$ http并收到错误。以下是我之前的服务和当前的服务:
angular.module('myApp')
.service('fetchData', function ($http, $rootScope, myService) {
// AngularJS will instantiate a singleton by calling "new" on this function
this.fetchNames=function() {
return $http.get(myService.getDomainUrl() + '/names.json');
}
});
以下是我的$resource
angular.module('myApp')
.service('fetchData', function ($resource, $rootScope, myService) {
// AngularJS will instantiate a singleton by calling "new" on this function
return $resource(myService.getDomainUrl() + '/names.json', {
query:{
method: 'GET',
cache: true
}
});
});
我收到以下错误: fetchData.fetchNames(...)。success不是函数
当我尝试在调用此函数时处理成功回调。请告诉我哪里出错了,以及在Angularjs中处理$resource
的正确方法是什么。
答案 0 :(得分:1)
查看文档:{{3}} 正确的方法是
var t = $resource(...);
t.query(successCallback, errorCallback)
另请注意:
$ http遗留承诺方法成功与错误 弃用。请改用标准方法。如果 $ httpProvider.useLegacyPromiseExtensions设置为false然后这些 方法将抛出$ http / legacy错误。
答案 1 :(得分:0)
$ resource是一个包装器。
将其声明为
public static void main(String[] args) {
int list1 [] = {1,2,55,8,7,9,60,4};
int list2 [] = {3,12,1,71,4,6,1,10};
for(int x : list1){
if(Arrays.asList(list2).contains(x)){
System.out.println( x + " : present in second array.");
}
}
}
您可以使用的操作(调用方法):
var User = $resource('/user/:userId', {userId:'@id'});
var user = User.get({userId:123}, function() {
user.abc = true;
user.$save();
});
我假设(没有代码如何使用)你没有调用正确的方法。 实施例
{ 'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
并像
一样使用它var resource = $resource(....);