角度双向绑定无线电输入

时间:2015-03-04 02:56:29

标签: javascript jquery angularjs

我有两组无线电输入:

<input type="radio" value="0" ng-model="domestic" ng-checked="domestic"> Domestic
<input type="radio" value="1" ng-model="international" ng-checked="international"> International

<input type="radio" value="0" ng-model="domestic" ng-checked="domestic"> Verified
<input type="radio" value="1" ng-model="international" ng-checked="international"> Unverified

无论我在哪一个集合中输入哪个输入,我都希望它相应地更改另一个集合中的相同输入。

我这样写的是因为我希望它能双向工作。

这是绑定的正确方法吗?还是有更好的方法。

由于

2 个答案:

答案 0 :(得分:1)

从抽象的角度考虑它。您现在正在做的是将两个无线电输入绑定到相同的值。如果您希望两个无线电输入在所有情况下都代表相同的数据值,那么您正在做的事情就好了。

否则,您始终可以将ng-checked设置为某个功能。如果您有其他需要考虑的事项,这将是理想的选择。类似的东西:

<input type="radio" value="0" ng-model="domestic" ng-checked="domesticChecked()"> Domestic

使用:

$scope.domesticChecked = function(){
    // you could do other checks here as well if it needed to be more complicated
   return (domestic && someOtherConsideration) ? true : false
 }

简而言之,如果您应用中的所有方案在这两个复选框之间呈现1:1值关联(如果选中一个,另一个始终也检查,反之亦然)那么您拥有的是什么很好。

答案 1 :(得分:0)

我认为你在寻找的是

<input type="radio" value="0" ng-model="domestic" name="x"> Domestic
<input type="radio" value="1" ng-model="domestic" name="x"> International


<input type="radio" value="0" ng-model="domestic" name="y"> Verified
<input type="radio" value="1" ng-model="domestic" name="y"> Unverified

演示:Fiddle

您需要为无线电元素指定名称以便对它们进行分组,然后如果使用相同的ng-model,您应该没问题。