单选按钮未被检查

时间:2018-03-14 10:45:57

标签: javascript angularjs radio-button

我有一个集合,我正在循环它。

<tbody>
    <tr ng-repeat="account in vm.pagedAccounts.items"
        ng-class="{ 'highlight': (account.rowIsSelected === account) }"
        <td>
            <input
                ng-model="account.rowIsSelected"
                ng-value="{{account}}"
                name="selectedAccount"
                ng-change="vm.selectAccount(account)"
                type="radio">
        </td>

ng-value设置为整个account object现在,该行正在突出显示,但未选中该按钮。 在控制器中,

vm.selectAccount = function (account) {
    account.rowIsSelected = account;
}

我做错了什么?

2 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西。而不是使用ng-change更多的共用来使用单独的selected模型。

视图

<div ng-controller="MyCtrl as vm">
  <table>
    <tbody>
      <tr ng-repeat="account in vm.items" 
          ng-class="{ 'highlight': account === vm.selected }">
        <td>
          Input:
          <input ng-model="vm.selected" 
                 ng-value="account"
                 name="selectedAccount"
                 ng-click="vm.resetOthers(account)"
                 type="radio">
        </td>
      </tr>
    </tbody>
  </table>
</div>

AngularJS应用程序

var myApp = angular.module('myApp', []);

myApp.controller('MyCtrl', function($scope) {

  let vm = this;

  vm.selected = null;

  vm.items = [{
    rowIsSelected: false
  }, {
    rowIsSelected: false
  }, {
    rowIsSelected: false
  }];
});

<强>&GT; demo fiddle

答案 1 :(得分:0)

如果要选中单选按钮,则应将-1设置为ng-value,不能绑定整个复杂对象,它应该是布尔值。

true