我有一个名为places.json的json文件。内容是
{
"Europe": [
{
"name": "London",
"country": "England"
},
{
"name": "Paris",
"country": "France"
}
],
"Asia": [
{
"name": "Delhi",
"country": "India"
},
{
"name": "Tokyo",
"country": "Japan"
}
],
"Africa": [
{
"name": "CapeTown",
"country": "SouthAfrica"
},
{
"name": "Abuja",
"country": "Nigeria"
}
]
}
这只是文件的一部分。文件非常大。
现在我通过角度js获取此文件
myApp.controller('cityController', ['$scope', '$http', function ($scope, $http) {
$http.get('places.json').success(function (data) {
$scope.items = data;
}).error(function (data) {
console.log(data);
});
}]);
然后我将我的html页面中的数据打印为
<div ng-repeat="(key,val) in items">
<p> {{key}}</p>
<div ng-repeat="place in val">
<p>{{place.name}}</p>
<p>{{place.country}}</p>
</div>
</div>
我收到输出但输入顺序不正确。 (即)我的亚洲地区首先印有地点和欧洲等等。为什么会这样呢?如何以正确的顺序打印。
答案 0 :(得分:4)
未定义对象中键的顺序。大多数浏览器按字母顺序实现它们,但它们可能按照它们想要的顺序返回。 如果您需要订购它们,则必须将它们放入一个数组中,并将每个的名称放入一个新属性(例如“name”)
来自ECMAScript Third Edition (pdf)的对象的定义:
4.3.3对象对象是Object类型的成员。 这是一个无序的属性集合,每个属性都包含一个基元 价值,对象或功能。存储在属性中的函数 对象称为方法。