来自单选按钮的AngularJS ng-model数据

时间:2014-01-30 15:13:29

标签: angularjs ng-repeat

我在AngularJS中有一个简短的表格。 我使用ng-repeat来显示性别并验证他们的单选按钮 问题是我想要选择单选按钮的值并使用ng-model打印出来。 怎么能实现这个目标?

Here Plunker

2 个答案:

答案 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。

http://plnkr.co/edit/M5cos7xFBA9a0eRWhHi9?p=info