【问题标题】:AngularJS - Radio button not checkedAngularJS - 未选中单选按钮
【发布时间】:2017-06-21 02:17:51
【问题描述】:

我有一个ng-repeat,里面有一堆单选按钮:

<div class="panel panel-default" ng-repeat="offer in vm.offerList">
    ...    
    <td ng-show="offer.edit">
        <div class="row">                        
            <input type="radio" name="before" ng-model="offer.before" value="false">
            <input type="radio" name="before" ng-model="offer.before" value="true">
       </div>
   </td>
   ...
</div>

模型offer.before 具有正确的值,但是,当显示该行时,单选按钮未选中。为什么会这样?我需要单选按钮来显示选定的值。

这是我的问题的一个小提琴示例:http://jsfiddle.net/danielrvt/dpoLdgjq/

【问题讨论】:

    标签: javascript html angularjs radio-button


    【解决方案1】:

    因为属性value 中的任何内容都获得toString() 类似值true 将被视为'true' 并且它将寻找'true'(string) 而不是true(boolean)。

    最好使用ng-value 而不是value 属性。它会将true 值视为仅布尔类型的true

    此外,在您的情况下,您必须添加 name 属性,使其对每个单选按钮组都是唯一的,每个 offer 元素单选将被视为唯一的表单元素。

    标记

    <div class="row">
        {{offer.before}}
        <input type="radio" name="before{{$index}}" ng-model="offer.before" ng-value="false">
        <input type="radio" name="before{{$index}}" ng-model="offer.before" ng-value="true">
    </div>
    

    Forked Fiddle

    【讨论】:

    猜你喜欢
    • 2018-05-10
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2016-01-23
    • 2017-05-05
    • 2015-05-07
    相关资源
    最近更新 更多