Angularjs 在Angular中,如何检查窗体(或其元素)的值是否已更改?
我知道一些属性,如Angularjs 在Angular中,如何检查窗体(或其元素)的值是否已更改?,angularjs,forms,input,Angularjs,Forms,Input,我知道一些属性,如$pristine,$dirty等。但是,$dirty只是指示表单元素是否已被交互 如何检查表单元素是否已实际更改 我需要元素上的$changed属性,该属性指示该输入的值是否已更新(或者在表单的情况下,任何子输入)。如果将该值设置回原始值,我希望将$changed设置回false 我的问题:angular已经有类似的东西了吗?如果没有,我如何构建这样的功能?您可以像这样使用$watch: 在控制器中: $scope.$watch('myForm', function(){
$pristine
,$dirty
等。但是,$dirty
只是指示表单元素是否已被交互
如何检查表单元素是否已实际更改
我需要元素上的$changed
属性,该属性指示该输入的值是否已更新(或者在表单
的情况下,任何子输入
)。如果将该值设置回原始值,我希望将$changed
设置回false
我的问题:angular已经有类似的东西了吗?如果没有,我如何构建这样的功能?您可以像这样使用$watch
:
在控制器中:
$scope.$watch('myForm', function(){
console.log('Form Changed')
},true)
在HTML中:
<form name='myForm'>
<input type="text" placeholder="Enter new name" ng-model="myForm.inputText" />
<input type="text" placeholder="Other" ng-model="myForm.inputOther" />
<input type="submit" />
</form>
您需要存储表单数据,观察并进行比较。这个指令似乎是通过一个“修改的”属性来实现的,这个属性听起来像是您正在寻找的“更改的”属性。他们有一个弹头要测试
你可以使用手表,但如果你想重复使用代码,你需要创建一个指令来完成繁重的工作
如果输入更改为新数据,然后用户恢复为原始数据,则此操作不适用于该场景。您的解决方案不比$dirty好多少。