我正在使用 ng-repeat 生成复选框,可以根据数据中是否存在该信息来选中或取消选中它们的初始状态。我的问题是尽管它正确显示了它们的初始选中/未选中状态,但当我取消选中已“预先选中”的框时,该框实际上取消选中但模型没有改变。然后我再次检查,模型没有改变但它是正确的。然后我再次取消选中,它在模型中正确清除并从那时起正常工作。我已经解决这个问题好几天了,我完全被困住了!任何人都可以看到我是否在做一些愚蠢的事情吗?我的感觉是这是一个初始化问题,但我离它太近了,现在看不到。谢谢!
<!-- if this is a checkbox to be drawn -->
<div ng-if="option.option_type=='checkbox'">
<label class="item-checkbox-right">
{{option.caption}}
<!-- handle multiple options -->
<!-- if answered_options[n]weight exists, make option.ans = weight --></label>
<ul ng-repeat="opti in questionpart.survey_answer[0].answered_options">
<li style="list-style: none; display: inline">
<!-- if option is set in the received data, set it in the model -->
<div ng-if="opti.id == option.id">
<div ng-init="option.ans = option.weight"></div>
</div>
</li>
</ul>
<label class="item-checkbox-right">
<!-- show the checkbox and bind to option.ans-->
<input class="checkbox-light"
type="checkbox"
name="{{questionpart.id}}"
ng-false-value="0"
ng-true-value="{{option.weight}}"
ng-model="option.ans"
ng-checked="option.ans==option.weight" />
</label>
</div>