我正在尝试使用$resource从静态json文件中获取数据,下面是代码片段:
angular.module('app.services', ['ngResource']).
factory('profilelist',function($resource){
return $resource('services/profiles/profilelist.json',{},{
query:{method:'GET'}
});
});
在控制器中,
function ProfileCtrl($scope,profilelist) {
$scope.items = [];
$scope.profileslist = profilelist.query();
for (var i=0;i<=$scope.profileslist.length;i++){
if($scope.profileslist[i] && $scope.profileslist[i].profileid){
var temp_profile = $scope.profileslist[i].profileid;
}
$scope.items.push(temp_profile);
}
但现在,我面临着一个错误:TypeError: Object #<Resource> has no method 'push'
你能告诉我哪里出了问题吗?
1条答案
按热度按时间7fyelxc51#
您不需要为默认的
$resource
方法指定actions参数(这些方法是“get”、“save”、“query”、“remove”、“delete”)。在这种情况下,您可以按原样使用.query()
方法(这只需要更改服务定义):还有一个提示是,如果需要将json解封装为数组,则示例将其解封装为hash而不是array(这就是为什么没有收到push方法错误),将
isArray: true
设置为action config:由于@finishingmove发现您确实无法立即分配$resource结果以获取,请提供回调: