我正在为表单使用一些单选按钮。
它们代表一个布尔值,并且成对出现,一个将模型值设置为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/