【问题标题】:Radio buttons are not checked initially最初未检查单选按钮
【发布时间】:2016-03-16 04:49:38
【问题描述】:

我见过很多类似的问题,但没有一个能解决我的问题:

我有一个 ng-repeat 来显示项目列表。他们每个人都有一个 div 满足某些条件时显示:'<div ng-if="someCondition"> </div>

在那个 div 里面,我有一个单选按钮:

<input type="radio" ng-model="item.Prop" name="published" ng-value="true" ng-checked="item.Prop"> <span>published</span>
<input type="radio" ng-model="item.Prop" name="published" ng-value="false"> <span>not published</span>

当其他功能正常工作时,当我的 div 变得可见时,不会直接检查它。但是,如果我选择其中之一,它会更改其 ng-model。

但是为什么一开始没有选择呢?

【问题讨论】:

  • 在 plunker 上提供您的代码
  • 显示更多 coes 你如何循环 ng-repeat 和模型
  • 我猜item.Prop 是假的?
  • 有些是真的,有些是假的。但没有一个被检查。而且,我直接做一个plunker好吗

标签: javascript angularjs radio-button


【解决方案1】:

根据您提供的代码很难知道,但我猜item.Propundefined。如果您向我们提供更多代码、fiddle 或 plunker,我们或许可以提供更多帮助。

演示您遇到的行为的小提琴示例:http://jsfiddle.net/HB7LU/20982/

如您所愿使用复选框的示例:http://jsfiddle.net/HB7LU/20983/

【讨论】:

    【解决方案2】:

    我找到了解决办法:

    问题是为 ng-repeat 循环中的每个项目创建了复选框。因此,每个复选框都具有相同的名称,因此无法选择任何一个。

    为了解决这个问题,我刚刚在复选框名称的末尾给出了项目的唯一属性。

    <input type="radio" ng-model="item.Prop" name="published{{item.ID}}" ng-value="true" ng-checked="item.Prop"> <span>published</span>
    <input type="radio" ng-model="item.Prop" name="published{{item.ID}}" ng-value="false"> <span>not published</span>
    

    这里是plunker

    【讨论】:

      猜你喜欢
      • 2018-08-22
      • 2018-09-07
      • 1970-01-01
      • 2019-05-29
      • 2020-11-29
      • 2018-07-23
      • 2021-10-19
      • 1970-01-01
      • 2019-01-15
      相关资源
      最近更新 更多