我有一个包含网格(表格行)的表单,每行都有一个checkBox
,允许您为操作选择该行(删除等)。还有一个选择所有checkBox
,允许您选择所有行。当我点击任意checkBox
选择一行时,表单不再是$pristine
。对于我的用例,我不希望仅仅因为用户选中该框而触摸或非原始的表单。我知道我可以重置整个表单,但我需要的是在控件(元素)上设置$pristine
。我确实尝试在$pristine
中设置$timeout
,但这似乎不起作用。
$timeout(function () {
// this did not work either
scope.myForm.myelementName.$pristine = true;
// this did not work either
scope.myForm.myelementName.$setPristine();
});
答案 0 :(得分:0)
function setFormPristine(form) {
var isPristine = true;
angular.forEach(form, function (value, key) {
if ((typeof (value) != "undefined") && value.hasOwnProperty('$pristine') && !value.$pristine) {
isPristine = false;
return;
}
});
if (isPristine) {
form.$setPristine();
}
}