gpt4 book ai didi

javascript - Angularjs 自动保存输入

转载 作者:行者123 更新时间:2023-11-29 21:16:43 25 4
gpt4 key购买 nike

我想在上次更改后 5 秒自动保存我的文本区域控件,并显示脏标志状态。

所以当我开始输入时脏标志应该为真,如果我停止输入 5 秒,我应该将最新值发送到后端代码并将脏标志更改为假。

我知道 ng-model-option 和 debounce 选项。除了不会改变脏标志外,这对我来说是一个很好的解决方案。 ng-change 在 5 秒超时后触发,而不是在更改开始时触发。对我来说,一个完美的解决方案是在 ng-change 内部延迟(去抖动),而不是之前,这样我就可以捕捉到变化状态。

知道我该如何处理吗?

最佳答案

一种方法是同时使用 ngChange 和 $timeout。基本上,您将使用 ngChange 进行即时状态更改,然后在更改函数内创建一个 $timeout 函数,该函数在最后一次更改后再运行 5 秒。

它可能看起来像这样:

myApp.controller('MyCtrl', function($scope, $timeout){   

var timeout;
$scope.instant = false;
$scope.delayed = false;

//INSTANT & DELAY Function
$scope.change = function(){
$scope.instant = true;

if(timeout) {
$timeout.cancel(timeout);
}
timeout = $timeout(function(){
$scope.delayed = true;
}, 5000);

});

然后您将在 ngChange 指令中调用 change()

这是一个有效的 JSFiddle

关于javascript - Angularjs 自动保存输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39135855/

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