Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在Angular中,如何检查窗体(或其元素)的值是否已更改?_Angularjs_Forms_Input - Fatal编程技术网

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好多少。