单选按钮最初未选中

Radio buttons are not checked initially

本文关键字:单选按钮      更新时间:2023-09-26

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

我有一个ng重复显示项目列表。它们中的每一个都有一个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模型。

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

根据您提供的代码很难知道,但我猜item.Prop就是undefined。如果您为我们提供更多的代码、小提琴或plunker,我们可能会提供更多帮助。

小提琴示范你正在经历的行为:http://jsfiddle.net/HB7LU/20982/

示例:随意使用复选框:http://jsfiddle.net/HB7LU/20983/

我找到了解决方案:

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

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

<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: