我正在使用ng-repeat迭代键/值数组。如果键=='名字'我想将它绑定到firstName。我是angular.js的新手,有可能有更好的方法吗?基本上我有一个键/值数组和其中的一些键我想做点什么。
<ul id="customers" infinite-scroll='loadMoreUsers()'>
<li ng-repeat="user in users" data-customer-id="{{user.Id}}">
<h4>{{user.firstName}} {{user.lastName}}</h4>
<div ng-repeat="(key, value) in user.AttributeBag">
<span ng-if="key == 'First Name'">{{user.firstName = value}}</span>
<span ng-if="key == 'Last Name'">{{user.lastName = value}}</span></span>
<span ng-if="key != 'First Name' && key != 'Last Name'">{{key}} : {{value}}</span>
</div>
</li>
</ul>
答案 0 :(得分:1)
ng-if
创建了自己的子范围,这就是您无法访问key
我能想到的两种方法
ng-show
代替ng-if
。 ng-show
不会创建自己的范围。$parent
访问父作用域。但是,您在user.AttributeBag
中使用了ng-repeat
的抽象,因此需要进行一些调整。答案 1 :(得分:1)
来源:http://www.w3schools.com/js/js_arrays.asp
JavaScript不支持具有命名索引的数组。 在JavaScript中,数组始终使用编号索引。 警告 !! 如果使用命名索引,JavaScript会将数组重新定义为标准对象。 之后,所有数组方法和属性都将产生不正确的结果。
var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
var x = person.length; // person.length will return 0
var y = person[0]; // person[0] will return undefined
你可能正在做的事情在概念上是错误的,你需要使用一组对象吗?