我希望能够检测到字段何时发生变化。我的表单字段是使用ng-repeat生成的。
假设formfields如下:{“FIELD1”:“”,“FIELD2”:“”,“FIELD3”:“预填充”,“FIELD4”:“”}
<div ng-controller="MyController">
<form name="myform">
<div ng-repeat="(key, keyvalue) in formfields">
<input name="{{key}}" ng-model="formfields[key]">
</div>
</form>
</div>
我的问题是,当我尝试使用checkPristine()函数内的“console.log($ scope.myForm.FIELD1)”时,pristine始终设置为true并且永远不会更改为false。如何查看字段是否已更改?如果它不起作用,可以选择原始的替代品。
答案 0 :(得分:0)
您可以在输入中添加ng-blur指令,如下所示:
https://jsfiddle.net/54r4991j/
vm.formfields = {"FIELD1":"", "FIELD2":"", "FIELD3":"Prepopulated", "FIELD4":""};
vm.watchFormField = function(fieldKey) {
alert(fieldKey + 'changed to ' + vm.formfields[fieldKey]);
}
<form name="myform">
<div ng-repeat="(key, keyvalue) in ctrl.formfields">
<input name="{{key}}" ng-model="ctrl.formfields[key]" ng-blur="ctrl.watchFormField(key)">
</div>
</form>