AngularJS单选按钮

32
我知道这个问题在一些谷歌帖子中已经被讨论过,但我仍然找不到正确的解决方案来将我的单选按钮输入绑定到模型(以清晰简洁的方式), 目前我有以下HTML:
<input ng-model="searchByRma" type="radio" name="search-type">
<input ng-model="searchByDelivery" type="radio" name="search-type">

在控制器中:

$scope.searchByRma      = true;
$scope.searchByDelivery = false;

这种方式不起作用(因为它不能像复选框一样工作)...

有没有办法在不失去数据绑定的情况下设置第一个单选按钮的默认值?

谢谢!

2个回答

65

我认为你应该在这两个单选按钮中使用相同的变量,但赋不同的值。

<input ng-model="searchBy" value="Rma" type="radio" name="search-type">
<input ng-model="searchBy" value="Delivery" type="radio" name="search-type">

然后,根据用户输入,你应该将searchBy设为"Rma"或"Delivery"之一。


1
太好了,我也在一个单选按钮上设置了ng-checked,导致它出现问题,所以这可能对某些人有帮助...谢谢!!! - alchemication
为什么例如这个也能完美运行,但是当type='radio'时就不行了呢?<input type='checkbox' ng-init='checkStatus=false' ng-model='checkStatus' ng-click='doIfChecked(checkStatus)'> - mramosch

-1

对我起作用的是将模型变量设置为{ },这将重置单选按钮为其默认状态(未选择)。当然,只有在您的单选按钮标签正确无误时才能实现此功能,如tosh的答案所示。

在您的情况下:

$scope.searchBy = { };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接