gpt4 book ai didi

javascript - 仅在 focusout 字段后调用 $scope.watch 函数

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

我是 Angular 的新手,我正在寻找一种调用函数的方法,目前在每次更改后调用函数,只有在焦点离开该字段后才会调用。此功能的目的是检查用户是否更改了某些 <td> 中的数据并且只有当他更改了数据时,函数才应该执行。现在的问题是每次按键都会调用该函数,因此如果使用将 2 个字符添加到 <td> 中的字符串它将执行两次。

这是我的 table :

<tbody ng-repeat="(user_id,script_id) in data">
<tr ng-repeat="(script_id, cron_format) in script_id">
<td class="userName">{{user(user_id)}}</td>
<td class="scriptName">{{script(script_id)}}</td>
<td class="cronFormat"><input type="text" ng-model="cron_format" ng-change="saveCron(user_id,script_id,cron_format)"/></td>
</tr>
</tbody>

这是函数:

$scope.$watch('cron_format',function(x,old){
if(x!=old){
}
});

$scope.saveCron = function(userId,scriptId,cronFormat){

$.post("updateCronChange.php",
"user_id="+userId+"&script_id="+scriptId+"&cron_format="+cronFormat,
function(data){
//inside post
alert('cron format changed to:'+cronFormat);
});
}

任何 Angular 方式我都只能在焦点离开字段(cron_format)??

最佳答案

Angular 1.3.x 的另一种解决方案是使用 ngModelOptions 指示仅在 focusout 事件上更新模型:

<input type="text" 
ng-model="cron_format"
ng-change="saveCron()"
ng-model-options="{ updateOn: 'focusout', debounce: {'focusout': 0} }"/>

关于javascript - 仅在 focusout 字段后调用 $scope.watch 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480192/

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