对象的顺序已更改
Order of object is changed
我想绑定动态数据,绑定数据后数据的顺序发生了变化
var app = angular.module("mainApp", []);
app.controller('mainCtrl', function($scope){
$scope.fieldNames = { author_name: "Author Name", about_author: "About author", author_image : "Author Image" };
$scope.authors = [{author_name: 'akshay', about_author:'this is about author', author_image:'image url here'}];
console.log($scope.authors);
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="mainApp" ng-controller="mainCtrl">
<div ng-repeat="author in authors" class="authorAndTagGroup">
<div ng-repeat="(key, value) in author">
<label class="col-sm-3 control-label">{{fieldNames[key]}}</label>
<input type="text" ng-model="author[key]">
</div>
</div>
</div>
我想显示像
作者姓名 : 阿克谢
关于作者:这是关于作者的
author_image : 图片网址在这里
是的,如果您使用解决此问题的更高版本(例如-> 1.5.3
),问题将得到解决。
工作演示
我建议您查看迁移文档。它将帮助您避免将来出现问题。
从迁移文档:
由于 c260e738,以前,使用 ngRepeat 到 对对象属性的迭代保证是一致的 按字母顺序对键进行排序。
现在,项目的顺序取决于浏览器的顺序 从使用
for key in obj
循环访问对象返回 语法。似乎浏览器通常遵循提供密钥的策略 按照它们的定义顺序,尽管有例外 删除并恢复密钥时。看 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete#Cross-browser_issues
最好的方法是通过过滤器将对象转换为数组,例如 作为 https://github.com/petebacondarwin/angular-toArrayFilter 或一些 其他机制,然后按所需顺序手动排序。
您应该始终显式定义属性名称,因为永远无法保证每个(如 ng-repeat)循环的排序。
所以我建议使用单个循环(而不是嵌套循环),如下所示:
<div ng-repeat="author in authors" class="authorAndTagGroup">
<label class="col-sm-3 control-label">Author Name</label>
<input type="text" ng-model="author_name">
<label class="col-sm-3 control-label">About Author</label>
<input type="text" ng-model="about_author">
<label class="col-sm-3 control-label">Author Image</label>
<input type="text" ng-model="author_image">
</div>
当我将角度版本 1.2.23 更改为 1.5.3 时,问题得到了解决
相关文章:
- Javascript-根据赋值顺序,按键合并对象数组
- 如何按对象反转Angular ngRepeat的顺序's键,这些键是数字键
- 按特定顺序对对象进行排序—Angular
- 如何在 JavaScript 中以递增顺序在对象中添加属性
- JavaScript:指定对象中属性的顺序
- 对象的顺序已更改
- Javascript对象多个循环,相同的顺序
- 如何使用下划线根据自定义排序顺序对对象数组进行排序
- 对象在循环中运行时未定义,但在按顺序执行时未定义
- AngularJS-ngRepeat对对象的返回顺序与vanillar.in循环不同
- ng重复javascript对象中未按预期顺序重复的项
- 如何像java脚本中给定的对象一样,将对象的属性保持在相同的顺序
- javascript:按实际顺序获取对象项
- 在JavaScript中,对象如何跟踪键/值的插入顺序
- 如何根据不同排序顺序的多个值对json对象进行排序
- three.js:透明对象根据相机角度按错误顺序渲染
- 按数组顺序排列对象
- 通过多次调用按顺序将对象插入数组
- 了解 JavaScript 对象赋值的顺序
- 通过对象返回的键的顺序.对象中的键