2016-03-05 143 views
2

我有一個名爲places.json的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> 

我得到的輸出,但不正確訂購。 (即)我首先在亞洲印刷了它的地方和歐洲等等。這是爲什麼發生。我怎樣才能以正確的順序打印。

回答

4

未定義對象中按鍵的順序。大多數瀏覽器按照字母順序實現它們,但它們可能按照他們想要的順序返回。 如果你需要他們進行排序,你將不得不把它們放到一個數組來代替,把每名進入一個新的屬性(如「名」)的對象

定義從ECMAScript Third Edition (pdf)

4.3.3對象對象是Object類型的成員。 它是一個無序的屬性集合,每個屬性都包含一個原始值 值,對象或函數。存儲在 對象的屬性中的函數稱爲方法。

+0

謝謝。我將更改json格式並將大陸名稱也存儲在屬性 –

+0

np中,但是您可以將答案標記爲正確嗎? –