Angularjs ng在数组对象内重复数组对象

Angularjs ng在数组对象内重复数组对象,angularjs,angularjs-ng-repeat,ng-repeat,Angularjs,Angularjs Ng Repeat,Ng Repeat,在我的index.html文件中,我们使用两个ng repeat文件从data.json获取数据 在这种方法中,每个数据都创建了重复的DOM 如何在my index.html中使用单ng repeat而不是双ng repeat <div ng-repeat="x in userdata"> <item data="y" ng-repeat="y in x.content"></item> </div> 您可以在js中为每个

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

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

如何在my index.html中使用单ng repeat而不是双ng repeat

<div ng-repeat="x in userdata">
      <item data="y" ng-repeat="y in x.content"></item>
    </div>


您可以在js中为每个对象使用嵌套的angular,因此您可以使用单个ng repeat来使用final scope

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>

{{x.content}}

代替
$scope.userdata=data.document,您可以执行以下操作:

$scope.userdata = data.document.reduce(function(a, b) { 
    return a.concat(b.content);
}, []);
这将把所有
内容
放在同一个数组中。并准确地使用您在plunker中的评论

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


以下是您的更新

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

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(){
});
var createMap=函数(列表){
var-map={};

对于(var i=0;i您希望输出的准确程度如何?我希望以单个ng重复获取每个对象,但我的代码获取每个结果时使用一个ng-repeat@jos:我想使用单ng重复来获得相同的结果results@CodeMan您需要准备数据,而不是
userdata
它应该是所有
内容
数组的串联imo@codeMan你的c内容数组可以转换为一个映射,其中名称是键,内容是值。将此映射添加到数组中并重复。我只有两个“内容”数组对象可在“文档”中保存,因此我只需重复两次。与我的相比,每次ng重复我都需要获得所有细节,如“内容”和“名称”