数组对象中的ng-repeat数组对象

时间:2016-11-21 10:03:38

标签: angularjs angularjs-ng-repeat ng-repeat

在我的index.html文件中,我们使用两个ng-repeat文件从data.json获取数据。

在这种方法中,每个数据都创建了重复的DOM。

如何在index.html中使用单次ng-repeat而不是double ng-repeat。

android:gravity="center"

https://plnkr.co/edit/uGRmYSv90kbjFzx9qmkI?p=preview

3 个答案:

答案 0 :(得分:1)

你可以在js中为每个使用嵌套角度,所以你可以使用最终范围的单个ng-repeat

Database.getDatabase().success(function(data){
      $scope.userdata=data.document;
       $scope.sample = [];
  angular.forEach($scope.userdata, function(content) {
    angular.forEach(content.content, function(content) {
      $scope.sample.push(content);
    })
  })

}).error(function(){
});

现在你可以用样本循环

<div ng-repeat="x in sample">
     {{x.content}}
    </div>

updated with foreach

答案 1 :(得分:0)

而不是$scope.userdata = data.document你可以这样做:

$scope.userdata = data.document.reduce(function(a, b) { 
    return a.concat(b.content);
}, []);

这会将所有content放在同一个数组中。并准确地使用它如何评论您的plunker

<item data="x" ng-repeat="x in userdata"></item>

此处有plnkr

的更新

答案 2 :(得分:0)

创建包含内容的地图,并将其作为另一个对象添加到文档

var createMap = function(list) {
   var map = {};
   for(var i =0;i <list.length ; i++) {
     map[list[i].name] = list[i].content;
  }
   return map;
 };
    Database.getDatabase().success(function(data){
      for(var i =0;i <data.document.length ; i++) {
        data.document[i]['userdata'] = createMap(data.document[i].content);
      }
      $scope.userdata=data.document;
      console.log($scope.userdata);
}).error(function(){
});

plnkr here