检测用户是否以角度输入输入形式的输入框?

时间:2016-05-13 18:08:00

标签: angularjs

我希望能够检测到字段何时发生变化。我的表单字段是使用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。如何查看字段是否已更改?如果它不起作用,可以选择原始的替代品。

1 个答案:

答案 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]);
}

HTML

<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>