将复选框绑定到AngularJs中的对象值

pet*_*lex 2 javascript angularjs

问题在于将复选框(已选中/未选中)的状态绑定到对象值.

HTML:

<div ng:controller="Ctrl"> 
   <div ng:repeat="(letter, number) in obj">
     {{letter}} and {{number}}
     <input type="checkbox" ng:model="obj[letter]">
</div>    
Run Code Online (Sandbox Code Playgroud)

控制器:

function Ctrl() {
    this.obj = {a:true,b:true};    
};?
Run Code Online (Sandbox Code Playgroud)

单击第一个复选框时,它会影响第二个复选框的状态,但模型是正确的,因此obj变为{a:false,b:true}.

示例可以在http://jsfiddle.net/alexpetrov/tRxzr/找到

如何解决这个问题?

Voj*_*jta 6

将ng-repeat绑定到对象而不是基本类型.

function Ctrl() {
    this.obj = [{id: 'a', checked: true}, {id: 'b', checked: true}];
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/tRxzr/1/

绑定到原始类型会混淆ng-repeat,这是一个错误:https: //github.com/angular/angular.js/issues/933