【问题标题】:Radio Button not getting checked未检查单选按钮
【发布时间】:2018-08-22 20:38:50
【问题描述】:

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

<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;
}

我做错了什么?

【问题讨论】:

标签: javascript angularjs radio-button


【解决方案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
  }];
});

> demo fiddle

【讨论】:

    【解决方案2】:

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

    <input
        ng-value="account.rowIsSelected"
        name="selectedAccount"
        ng-change="vm.selectAccount(account)"
        type="radio">
    

    【讨论】:

    • 这是不正确的。 ng-value 接受混合类型。文档说它只允许string,但这根本不是真的。它确实允许混合类型。 docs.angularjs.org/api/ng/input/input%5Bradio%5D。 -> 选择收音机时 ngModel 将被设置的 AngularJS 表达式。如果您需要非字符串 ngModel(布尔值、数组、...),则应使用该属性而不是 value 属性。
    猜你喜欢
    • 1970-01-01
    • 2019-05-29
    • 2016-03-16
    • 2018-07-23
    • 2021-10-19
    • 1970-01-01
    • 2019-01-15
    • 2016-08-17
    • 2013-10-28
    相关资源
    最近更新 更多