0

我正在使用 angularjs 使用以下代码重复单选按钮组。

<div class="row observation-point"
         ng-repeat="observationPoint in question.observationPointList">
        <div class="col-md-6 col-sm-6">
            <small>{{observationPoint.text}}</small>
        </div>
        <div class="col-md-4 col-sm-4 col-md-offset-2 col-sm-offset-2">
            <label class="radio-inline">
                <input type="radio" ng-disabled="observation.status != 'Open'"
                       name="{{domain.id}}-{{question.id}}-{{observationPoint.id}}"
                       id="{{domain.id}}-{{question.id}}-{{observationPoint.id}}-1" ng-value="true"
                       ng-model="observationPoint.observed">{{'observation-domain.html.yes' | translate}} {{observationPoint.observed}}
            </label>
            <label class="radio-inline">
                <input type="radio" ng-disabled="observation.status != 'Open'"
                       name="{{domain.id}}-{{question.id}}-{{observationPoint.id}}"
                       id="{{domain.id}}-{{question.id}}-{{observationPoint.id}}-0" ng-value="false"
                       ng-model="observationPoint.observer">{{'observation-domain.html.no' | translate}}
            </label>


        </div>
    </div>

使用 angular 1.2.28 效果很好,但是我们最近升级到 1.4.2,现在结果如下图所示。

在此处输入图像描述

模型值在变量中正确保存和恢复(参见图中的真假值),但重新加载页面后只选择了 ng-repeat 中的最后一个单选按钮。

为什么会发生这种情况,因为我真的不明白问题是什么以及如何解决这个问题。

注意。observationPoint.observer 包含一个布尔值而不是字符串

编辑:我创建了一个简化的 plunker,当然这可以按预期工作:S http://plnkr.co/edit/tWjizHB8I5FNZVOgdq6J?p=preview

这表明命名或 id 有问题。但是,当我检查开发人员工具时,id 和 name 似乎很好 在此处输入图像描述

4

1 回答 1

3

我找到了一个解决方案,如果我将动态名称从

name="{{domain.id}}-{{question.id}}-{{observationPoint.id}}"

name="observationPoint_{{observationPoint.id}}"

它工作顺利。我认为存在某种加载/计时问题。在呈现 UI 时,这些变量可能不是唯一的,并且仅导致设置最后一项。

于 2015-09-16T06:44:55.353 回答