我有一个包含大约 100 个问题的表单,每个问题都有一个收音机和一些复选框,所以我需要用户能够保存表单并稍后加载它。我还需要检查用户在此会话中更改了哪些内容。
这个问题解决了问题: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。取消选中并选中该框将其更改为“真”
<input ng-model="question.answer" ng-checked="question.answer"
type="checkbox" name="{{'answer' + question.id}}"/>
这是一个plnkr:http ://plnkr.co/edit/3xcI0Yq9WPZ1IxJJjKGt?p=preview