gpt4 book ai didi

Angular : $pristine for ng-check checked inputs

转载 作者:行者123 更新时间:2023-12-01 11:36:29 27 4
gpt4 key购买 nike

我有一个包含大约 100 个问题的表单,每个问题都有一个单选按钮和一些复选框,因此我需要用户能够保存表单并在以后加载它。我还需要检查用户在此 session 中更改了哪些。

本题解决问题:How can I denote which input fields have changed in AngularJS

第二个答案(存储模型的旧值和当前值并比较两者)做到了。但是,如果我想使用 $pristine 解决方案,我会遇到问题。取消选中 ng-checked 框不会更改它的 $pristine 值。只有在取消选中后再次选中该框,$pristine 值才会变为 false。

我知道我不应该将 ng-model 与 ng-check 一起使用,但我从服务器得到的答案是 1 或 0。用作模型的这个值不检查复选框。

ng-model="question.answer"  //will not check the box
ng-check="question.answer" //does check the box

来自服务器的值为 1。取消选中并选中该框会将其更改为“true”

<input ng-model="question.answer" ng-checked="question.answer" 
type="checkbox" name="{{'answer' + question.id}}"/>

这是一个plnkr:http://plnkr.co/edit/3xcI0Yq9WPZ1IxJJjKGt?p=preview

最佳答案

您需要将10 分别设置为真值和假值。您可以使用 ng-true-value and ng-false-value进行设置。您不必处理将 1/0 转换为 true/false,也可以摆脱 ng-checked 并有效地使用 ng-model 本身。

<input ng-model="question.answer" 
ng-true-value="1"
ng-false-value="0" type="checkbox" name="{{'answer' + question.id}}" />

Plnkr

关于 Angular : $pristine for ng-check checked inputs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26620660/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com