加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使angularjs $resource返回[OO]对象的数组

发布时间:2020-12-17 07:51:36 所属栏目:安全 来源:网络整理
导读:如何使angularjs $resource返回从指定域对象派生/原型化的对象数组? 以下是http://plnkr.co/edit/AVLQItPIfoLwsgDzoBdK?p=preview上处理一组Notes对象的示例. app.controller('MainCtrl',function($scope,NoteResource) {$scope.name = 'World';$scope.note
如何使angularjs $resource返回从指定域对象派生/原型化的对象数组?

以下是http://plnkr.co/edit/AVLQItPIfoLwsgDzoBdK?p=preview上处理一组Notes对象的示例.

app.controller('MainCtrl',function($scope,NoteResource) {
$scope.name = 'World';
$scope.notes  = NoteResource.query();

$scope.spellCheckAllNotes = function() {
  angular.forEach($scope.notes,function(note) {
    note.spellCheck();
   });
 }
});

问题是$resource返回的是Resources数组,而不是添加了原型的Resource方法的Notes数组.

[解决方案应遵循“好”的JavaScript实践]

这是完成的 plunker.是原始json被解析为JSON对象.它正在使用Armando提到的transformResponse.
app.factory('NoteResource',['$resource',function($resource) {
    var res =  $resource('http://okigan.apiary.io/notes/:id',{},{
      query: {
        method: 'GET',params: {
        },isArray: true,transformResponse: function(data,header){
          //Getting string data in response
          var jsonData = JSON.parse(data); //or angular.fromJson(data)
          var notes = [];

          angular.forEach(jsonData,function(item){
            var note = new Note();
            note.noteTitle = item.title;  
            notes.push(note);
          });

          return notes;
        }
      }
    });
    return res;
  }
]);

只是为了显示未使用原始资源的标题,我在note和html中将标题修改为noteTitle.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读