为什么我的默认单选按钮没有显示在模型中?

时间:2014-09-23 16:22:11

标签: javascript angularjs angularjs-directive angularjs-ng-model

我在表单上有一个预先选择的单选按钮。这是html:

<input type="radio" ng-model="bankAccount.selectedAccount" value="{{account.bankAccountId}}" class="radioChanged" ng-checked="{{account.defaultAccount}}">

表单显示,单选按钮被选中,但当我单击我的提交按钮时,模型bankAccount.selectedAccount只是一个空对象。如果我单击已在视图中选择的默认单选按钮,则它会显示在模型中。使用默认单选按钮填充模型需要做什么?

1 个答案:

答案 0 :(得分:1)

您需要使用ng-value代替value插值,以便该值与模型相关联。还要注意,ng-checked不应该有插值,当你有插值时,即使绑定值为false,它也会被视为&#34; false&#34;字符串,它是真实的(If the expression is truthy, then special attribute "checked" will be set on the element)。

尝试: -

 <input type="radio" ng-model="bankAccount.selectedAccount" 
         ng-value="account.bankAccountId" class="radioChanged" 
         ng-checked="account.defaultAccount">
  

将给定表达式绑定到input [select]或input [radio]的值,以便在选择元素时,将该元素的ngModel设置为绑定值。


不要将ng-checkedng-model混合,ng-checked只根据truthy / falsy条件设置元素的checked属性。它不会更新ngModel。相反,如果您想选择一个无线电,那么可以通过将其ng-model bankAccount.selectedAccount设置为默认帐户的值来进行。

即: -

<input type="radio" ng-model="bankAccount.selectedAccount" 
     ng-value="account.bankAccountId" class="radioChanged" />

<强> Plnkr