我使用ng-repeat="(key, value)"
语法来迭代JSON对象,但是当我使用复选框时,我从未真正需要value
变量。是否有更简洁的方法来执行以下操作:
编辑: HAML令人困惑,所以这里是纯HTML /角度:
<!-- "(key, val) in object" allows me to do everything, but value variable is wasted -->
<label ng-repeat="(attribute, value) in object">
<input type="checkbox" ng-model="object[attribute]"/>
{{attribute}}
</label>
请注意,我实际上使用attribute
作为ng-model
(仅在绑定到value
时无法正常工作)和复选框标签。这里没有逃脱钥匙。我不需要的是 value 变量。
您确实可以执行ng-repeat: "value in object"
,但value
未在复选框上正确绑定,而且,再次,我没有为标签提供一些内容:
<!-- "val in object" does not give me a label for checkboxes, and does not bind correctly -->
<label ng-repeat="value in object">
<input type="checkbox" ng-model="value"/> <!-- changing this checkbox does not update the parent scope -->
{{attribute}} <!-- does not exist in scope -->
</label>
这是一个演示上述内容的小提琴:http://jsfiddle.net/Zb5bA/8/
答案 0 :(得分:3)
无法仅对密钥进行迭代,因此必须使用
ng-repeat="(key, value) in object"
你不能忽视这里的价值。