对于有多个无线电输入的人(是/否),我的ng-repeat问题很小。输入名称应该不同,因为name =" person.name"但它的行为就像它们都是一样的。有人知道如何解决这个问题吗?
http://jsfiddle.net/Chotkos/EbU8g/
HTML:
<form name="myForm" ng-controller="MyCtrl">
<p>Decisions</p>
<ul>
<li ng-repeat="person in people">
<label>{{person.name}}
<input type="radio" ng-model="person.decision" name="person.name" value="Yes" />
<input type="radio" ng-model="person.decision" name="person.name" value="No" />
</label>
</li>
</ul>
</form>
JS:
function MyCtrl($scope) {
$scope.people = [{
name: "John"
}, {
name: "Paul"
}, {
name: "George"
}, {
name: "Ringo"
}];
}
答案 0 :(得分:5)
您需要在该上下文中使用{{ person.name }}
,而不是"person.name"
。
答案 1 :(得分:2)
我不知道你为什么被投票。你的问题很好。因此,您使用的是HTML表单中传统的name
属性。由于name
不是角度的一部分,因此您需要将person.name
包装在大括号name="{{person.name}}"
中,以便角度知道要解析它。
答案 2 :(得分:0)
请看这里:http://jsfiddle.net/Chotkos/EbU8g/ 发生这种情况是因为您将所有输入都包装到标签标签
中 <form name="myForm" ng-controller="MyCtrl">
<p>Decisions</p>
<ul>
<li ng-repeat="person in people">
<label>{{person.name}}</label>
<input type="radio" ng-model="person.decision" name="person.name" value="Yes" />
<input type="radio" ng-model="person.decision" name="person.name" value="No" />
</li>
</ul>
</form>