当前位置: 首页 > 面试题库 >

使用AngularJS $ resource获取数据

陈昊昊
2023-03-14
问题内容

我正在尝试使用$ 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'

你能帮我解决我的问题吗?


问题答案:

您不需要为默认$resource方法指定动作参数(这些方法是“ get”,“ save”,“ query”,“ remove”,“
delete”)。在这种情况下,您可以.query()按原样使用method(这仅需要更改服务定义):

angular.module('app.services', ['ngResource']).
  factory('profilelist',function($resource){
    return $resource('services/profiles/profilelist.json');
  });

PS还有一个提示是,如果您需要将其作为设置isArray: true为action config
的数组,则示例将json展开为哈希而不是数组(这就是为什么未收到push方法错误的原因)的原因:

'query':  {method:'GET', isArray:true}

正如@finishingmove所发现的,您实际上无法分配$
resource
结果立即获取,请提供回调:

$scope.profileslist = profilelist.query(function (response) {
    angular.forEach(response, function (item) {
        if (item.profileid) {
            $scope.items.push(item.profileid);
        }
    });
});


 类似资料:
  • 问题内容: $ resource非常棒,它提供了非常方便的方式来处理Web服务。如果必须在不同的URL上执行GET和POST怎么办? 例如,GET URL是, 而POST URL 没有任何参数 问题答案: 您应该能够将URL作为参数公开。我能够做到这一点: 然后,您可以覆盖通话中的URL 。 在我的简短测试中发现的一个警告是,如果我将URL字符串包含在内,则该字符串将无法正常工作。我没有收到错误消

  • 当我尝试使用Angularjs$http.get()访问wiki api时,出现了CORS问题。这是我的密码 $http.get('http://en.wikipedia.org/w/api.php?action=query 这是错误信息 无法加载XMLHttpRequesthttps://en.wikipedia.org/w/api.php?action=query

  • 问题内容: 我有一些要调用的Web服务。或,我应该使用哪一个? :https : //docs.angularjs.org/api/ngResource/service/$resource :https : //docs.angularjs.org/api/ng/service/$http 阅读以上两个API页面后,我迷路了。 您能用简单的英语给我解释一下有什么区别,在什么情况下我应该使用它们?如

  • 问题内容: 如何使angularjs $ resource返回从指定域对象派生/原型化的对象数组? 这是http://plnkr.co/edit/AVLQItPIfoLwsgDzoBdK?p=preview上的示例,该示例处理一组s对象。 问题是$ resource返回s的数组,而不是将方法添加到原型的s 数组。 [解决方案应遵循“好的” javascript做法] 问题答案: 这是完整的 矮人

  • 问题内容: 我想使用$ resource调用我的RESTful Web服务(我仍在使用它),但是我想知道我是否首先正确地使用了AngularJS脚本。 待办事项DTO具有: 因此,我可以调用以清除数据库中的todo表。 这是带有我的理解注释的代码: 我不确定的一件事是PATCH方法,我不想更新所有内容,可以仅更新一个字段吗?我是否正确构建了这段代码? 问题答案: $ resource旨在从端点检索

  • 我需要创建一个应用程序,从存储过程中获取数据并将其显示在视图中。 当我从视图传递id到angularjs控制器时,具有该字段的值,但无法在Web api中获得相同的值,它显示null(在调用时)。 更具体地说,已经尝试了各种选择,其中一些如下: 使用[FromBody] 将json中的字符串值从angularjs控制器传递给webapi 因此,当它为空时,它总是以失败而不是成功抛出结果。 请帮忙。