我有多个 JSON 文件:
主要.json:
{
"MainRegister": [
{
"name": "Name1",
"url": "url1.json",
},
{
"name": "Name2",
"url": "url2.json",
},
]
}
url1.json
{
"SubInformation": {
"description": "Hello World 1",
"identifier": "id1",
}
}
url2.json
{
"SubInformation": {
"description": "Hello World 2",
"identifier": "id2",
}
}
现在我想在我的index.html中创建一个ng-repeat div,以便它加载文件中的所有字段,而且我想显示以下输出:
-
Name1: 你好世界1 (id1)
-
Name2: 你好世界2 (id2)
如何以 ng-repeat 方式绑定这些文件?或者还有别的办法吗?
您需要首先加载它们,然后设置一个范围变量,其中包含数组中的必要数据。你可以做$http
进入你的控制器(如下例所示),但如果它是可重用的或不仅仅是一个简单的应用程序,我建议在注入服务中进行它。
.controller('MyCtrl', function($scope,$http){
$scope.entries = [];
$http.get('main.json').success(function(data) {
angular.forEach(data.MainRegister,function(entry) {
$http.get(entry.url).
success(function(data) {
$scope.entries.push(angular.extend(entry,data.SubInformation);
});
});
});
});
然后你的模板可能看起来像
<div ng-repeat="entry in entries">
<span>{{entry.name}}: {{entry.description}} ({{entry.id}})</span>
</div>
如果您想订购过滤器,可以使用过滤器,或者加载$scope.entries
按照特定的顺序,或者如果您不想在所有条目准备好之前显示任何条目,那么您可以设置一个就绪变量,或者仅设置$scope.entries
在最后等等
我补充一点,我不喜欢那种越来越深的嵌入ajax调用,以及它们的一系列,但这是一个风格问题。我已经成为 caolan 异步库的忠实粉丝,它使上述控制器代码更加简洁。http://github.com/caolan/async http://github.com/caolan/async
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)