在我的index.html文件中,我们使用两个ng-repeat文件从data.json获取数据。
在这种方法中,每个数据都创建了重复的DOM。
如何在index.html中使用单次ng-repeat而不是double ng-repeat。
android:gravity="center"
答案 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>
答案 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(){
});