Saj*_*ith 7 angularjs ng-repeat
我有一个json对象.它不按升序排序.
$scope.myData = {
"MAX" : "some value",
"Forms" : "some value",
"Grids And Tables" : "some value",
"Navigation" : "some value",
"Services & APIs" : "some value"
}
Run Code Online (Sandbox Code Playgroud)
我使用ng-repeat在我的html模板中显示它.我得到了结果,但订单已按升序改变.
Forms
Grids And Tables
MAX
Navigation
Services & APIs
Run Code Online (Sandbox Code Playgroud)
如何防止角度js自动排序?
检查此链接
如建议的那样,无法对对象键进行排序.购买你可以对使用这些对象键创建的数组进行排序 -
$scope.keys = Object.keys($scope.myData);
<ul>
<li ng-repeat="key in keys">
{{key}} -
{{myData[key]}}
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在 JavaScript 中迭代对象键的顺序在技术上是未定义的。虽然大多数浏览器会按定义的顺序迭代对象,但您不应依赖此行为。
在 Angular 的情况下,ng-repeat需要始终对键进行排序,以便即使在事后添加键时顺序也是确定的。无法更改此行为,因为动态添加或删除键时会破坏指令。
如果您需要依赖数据的顺序,那么对象哈希不是正确的数据结构。您应该将数据重新格式化为数组,或者简单地使用键的顺序创建一个单独的数组,然后对其进行 ng-repeat 。使用键来索引对象。
| 归档时间: |
|
| 查看次数: |
7543 次 |
| 最近记录: |