【发布时间】:2014-11-05 19:45:41
【问题描述】:
我在使用 ng-model 和 ng-value 进行单选按钮双向绑定时遇到问题。我有三个单选按钮,在 ng-repeat 中创建。它们都是相同的 ng-model,$scope.selectedItem,每个按钮的 ng-value 都是 ng-repeat 中的当前项。这似乎工作正常。当我想在控制器中设置所选项目时,问题就来了。这里我有一个 ng-click 事件 select() 将 selectedItem 设置为传入的项目。
function MyCtrl($scope) {
$scope.list = [{
id: 1
}, {
id: 2
}, {
id: 3
}];
$scope.select = function (item) {
$scope.selectedItem = item;
}
}
<div ng-repeat="item in list" class="interactive" ng-click="select(item)">
<input type="radio" name="itemSelector" ng-model="selectedItem" ng-value="item" />
{{item.id}}
</div>
只要我只使用 ng-click 事件选择项目,它就可以工作。如果我直接使用单选按钮单击 #1,然后使用 ng-click 事件选择 #2,然后为 #1 触发 ng-click 事件,则第二个单选按钮将被取消选中,但第一个单选按钮不会被选中。当我在调试器中观察时,我可以看出 selectedItem 的值设置成功,只是单选按钮没有更新。
我使用单选按钮绑定的方式有问题吗?有没有办法解决这个问题?
【问题讨论】:
标签: angularjs