在Angular中,如何检查表单(或其元素)的值是否已更改?

时间:2015-12-22 23:29:53

标签: angularjs forms input

我了解$pristine$dirty等属性。但是,$dirty只是表明该表单元素是否已与之互动。

如何检查该表单元素是否已实际更改?

我需要在元素上添加$changed属性,指示input的值(或form,任何子input)的值已经更新。如果该值设置回原始值,我希望将$changed设置回false

我的问题:角度有没有这样的东西?如果没有,我该如何构建这样的功能?

2 个答案:

答案 0 :(得分:2)

您需要存储表单数据,观察然后进行比较。这个指令似乎是通过"修改"听起来像你的"改变了#34;您正在寻找的房产。他们有一个可以测试的人。

您可以使用手表,但如果您想重复使用代码,则需要创建一个指令来完成繁重的工作。

https://github.com/betsol/angular-input-modified

答案 1 :(得分:0)

你可以这样使用$scope.$watch('myForm', function(){ console.log('Form Changed') },true)

在您的控制器中:

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

在您的HTML中:

<%= f.date_select :deadline, :order => [:month, :day, :year], class: 'date-select' %>