gpt4 book ai didi

javascript - 如何获取使 Angular 变脏的字段?

转载 作者:行者123 更新时间:2023-11-28 07:54:52 26 4
gpt4 key购买 nike

有没有办法知道 Angular 中哪个字段使表单变脏了?我有一个“自动保存”指令,用于检查表单内是否有任何更改,并相应地保存它(通过服务器请求),代码如下:

app.directive 'nxAutoSave', ($timeout) ->
return {
scope: {
nxError: '='
nxAutoSave: '&'
}
require: ["^form"]
link: (scope, element, attrs, ctrls) ->
dirtyElement = null
$formCtrl = ctrls[0]
savePromise = null

scope.$watch ->
if $formCtrl.$valid and $formCtrl.$dirty
$timeout.cancel savePromise if savePromise
savePromise = $timeout(->
savePromise = null
# Still valid?
if $formCtrl.$valid
scope.nxAutoSave()
$formCtrl.$setPristine()
return
, 1100)
return

scope.$watch 'nxError', (newVal, oldVal) ->
#???

}

该指令监视 nxError (用作回调)以了解服务器是否发送了任何错误。在方法内部,我想显示一个带有错误消息的弹出窗口,但我需要知道哪个元素使表单变脏才能激活我的弹出窗口...

有人有什么建议吗?

最佳答案

表单中的每个命名输入也有脏状态。如果您在输入元素上放置名称属性,它们将在表单上可供您检查。因此,如果您的表单定义为:

<form name="myForm">
<input name="myField" type="text" ng-model="myModel" />
</form>

您将在范围内看到:

scope.myForm.myField.$dirty;

希望这有帮助...

关于javascript - 如何获取使 Angular 变脏的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26224320/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com