我在AngularJS中有一个简短的表格。
我使用ng-repeat
来显示性别并验证他们的单选按钮
问题是我想要选择单选按钮的值并使用ng-model
打印出来。
怎么能实现这个目标?
答案 0 :(得分:8)
问题在于您将所选性别(原始值)绑定到$ scope。使用ng-repeat时,它会创建一个新范围并从其父级继承值。不幸的是,因为你的值是原始的(一个数字),它们是通过值而不是引用传递的,所以你只能获得单向绑定。这就是为什么始终建议将值存储在范围内的对象上而不是直接存储。
以下是指向工作控制器的链接:http://plnkr.co/edit/Y7sTEaYMx0aD4fPDHAMA?p=preview
我添加了这个,并相应地调整了其余的代码:
$scope.user = {
selectedGender: 'none'
}
答案 1 :(得分:1)
Mike Robinson的解决方案是最优雅的。但是,快速解决方法是添加$ parent:
<input type="radio" ng-model="$parent.selectedGender" name="radiob" id="{{g.id}}" value="{{g.id}}" required />{{g.name}}
这将改变ng-repeat的父范围中的selectGender。