我正在为表单使用一些单选按钮。

它们代表一个布尔值,并且成对出现,一个将模型值设置为true,另一个设置为false。一个人,他们完美地工作,但相反似乎不工作:(

这是一个小提琴:

http://jsfiddle.net/leseulsteve/kckjksbb/

控制器:

$scope.instructors = [{
    isActive: true
}, {
    isActive: false
}];


视图:

<h2 ng-repeat="instructor in instructors">
   <input type="radio" name="status" ng-model="$parent.instructor.isActive" ng-value="true"/> Active
   <input type="radio" name="status" ng-model="$parent.instructor.isActive" ng-value="false"/>  Inactive
</h2>


我读到它与每个重复迭代的多个作用域有关,但无法绕开它

再一次非常感谢你

最佳答案

似乎是多种因素的组合:


为了使单选按钮组独立运行,它们需要使用不同的名称(例如name="status-{{instructor.id}}"
当写为$parent.instructor.isActive时,您不会在循环中引用与instructor对象有关的任何内容。您实际上是指instructor对象上的键$parent。因此,循环的每次迭代都将指向完全相同的模型。而是可以在instructor属性:ng-model中使用ng-model="instructor.isActive"对象本身。


我分叉并更新了您链接到的提琴:http://jsfiddle.net/0088ab2j/1/

关于javascript - 在ng-repeat循环中使用单选按钮似乎会使模型混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27493082/

10-10 00:03