去抖动不在 $scope.$watch 内触发
debounce not firing inside $scope.$watch
当我的 UI 中的模型变量更新时,我正在尝试 运行 一个函数,但我也试图通过去抖来限制该函数作为请求的函数执行的频率触发 AJAX 调用。然而,下面的去抖功能似乎根本没有触发。
我最初编写了自己的去抖动服务,并使用下划线去抖动方法来测试我写的内容是否不正确,但结果 Angular 只是不喜欢下面的内容...
在 HTML 中使用 Angular 的 ng-model-option
去抖动方法不是一个选项。
$scope.$watch('filters.monthlyCost', function () {
_.debounce(function () {
console.log('lol');
}, 1000);
});
没有控制台错误,console.log('lol')
从来没有发生过。
注意:$watch 执行。
据我了解 _.debounce 的文档(未测试)
$scope.$watch('filters.monthlyCost', function () {
var logConsole = _.debounce(function () {
console.log('lol');
}, 1000);
logConsole();
});
使用你的代码,你只是注册了一个去抖功能,但它不会执行。
由于debouncereturn是一个函数((Function): Returns the new debounced function.
),需要执行debounce
的return值,
例如:
_.debounce(function () {
console.log('lol');
}, 1000)();
你可以这样做:
$scope.$watch('monthlyCost', _.debounce(function() {
console.log('lol');
}, 1000));
当我的 UI 中的模型变量更新时,我正在尝试 运行 一个函数,但我也试图通过去抖来限制该函数作为请求的函数执行的频率触发 AJAX 调用。然而,下面的去抖功能似乎根本没有触发。
我最初编写了自己的去抖动服务,并使用下划线去抖动方法来测试我写的内容是否不正确,但结果 Angular 只是不喜欢下面的内容...
在 HTML 中使用 Angular 的 ng-model-option
去抖动方法不是一个选项。
$scope.$watch('filters.monthlyCost', function () {
_.debounce(function () {
console.log('lol');
}, 1000);
});
没有控制台错误,console.log('lol')
从来没有发生过。
注意:$watch 执行。
据我了解 _.debounce 的文档(未测试)
$scope.$watch('filters.monthlyCost', function () {
var logConsole = _.debounce(function () {
console.log('lol');
}, 1000);
logConsole();
});
使用你的代码,你只是注册了一个去抖功能,但它不会执行。
由于debouncereturn是一个函数((Function): Returns the new debounced function.
),需要执行debounce
的return值,
例如:
_.debounce(function () {
console.log('lol');
}, 1000)();
你可以这样做:
$scope.$watch('monthlyCost', _.debounce(function() {
console.log('lol');
}, 1000));