将复选框绑定到 AngularJs 中的对象值
Binding checkboxes to object values in AngularJs
问题在于将复选框的状态(选中/未选中)绑定到对象值。
.HTML:
<div ng:controller="Ctrl">
<div ng:repeat="(letter, number) in obj">
{{letter}} and {{number}}
<input type="checkbox" ng:model="obj[letter]">
</div>
控制器:
function Ctrl() {
this.obj = {a:true,b:true};
};
单击第一个复选框时,它会影响第二个复选框的状态,但模型是正确的,因此 obj 变为 {a:false, b:true}。
示例可在以下位置找到http://jsfiddle.net/alexpetrov/tRxzr/
如何解决这个问题?
将 ng-repeat 绑定到对象而不是基元类型。
function Ctrl() {
this.obj = [{id: 'a', checked: true}, {id: 'b', checked: true}];
}
http://jsfiddle.net/tRxzr/1/
绑定到基元类型会混淆 ng-repeat,这是一个错误:https://github.com/angular/angular.js/issues/933
当 JSON 不完全在您的控制范围内时,您将获得一个原始数组而不是一个对象。你想对同一个人做一个ng重复。
将 ng-repeats 绑定到复选框到基元数组并获取所选项。请参阅此处的 plunker 代码。
http://plnkr.co/edit/i6IiGY42h8CiOMaqT9SZ?p=preview
相关文章:
- AngularJs指令,该指令创建内部有数据对象的新指令
- AngularJS&JSON-从Previous&下一个对象
- 遍历AngularJs中的对象
- Angularjs:空对象,当只有一次点击时
- Javascript/AngularJs-如何用另一个数组中的对象填充数组
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 在禁用ng的情况下搜索JSON对象(AngularJS)
- 将数据推送到对象angularjs
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 用于对象AngularJs中包含的所有字段和数组的deepCopy
- 对于返回 1 个对象 Angularjs
- 使用内部数组遍历数组并创建新对象 - AngularJS
- 向json对象angularjs添加一个数组
- 如何删除数组中使用过滤器的对象?AngularJS
- 如何将密钥分配给对象Angularjs
- 将数据推送到对象AngularJS中
- 在导入的JSON对象AngularJS中获取一个数组
- 返回$rootScope函数中的对象(AngularJS)
- 如何遍历这个 Json 对象(angularJS)
- 按属性排序数组中的javascript对象(angularjs过滤器)