我有一个vm.search
变量,它是输入元素的 ng 模型。当我输入一些东西时,我想用一个delayedSave
函数将它保存到数据库中,但我不想保存用户输入的所有内容。所以我决定使用 lodash_.debounce
函数,但问题是这个函数在$scope.$watch
. delayedSave
执行次数与$scope.$watch
函数一样多。
$scope.$watch('vm.search', nv => {
let savedQuery = _.find(vm.searchQueries, {query: nv});
if (savedQuery) {
vm.currentSearchQuery = savedQuery;
}
let runDebounce = _.debounce(delayedSave, 1000);
runDebounce(nv);
});
我可以将 debounce 设置为$watch
的回调,但我需要执行我在下面编写的代码,每次vm.seach
都发生了变化。
let savedQuery = _.find(vm.searchQueries, {query: nv});
if (savedQuery) {
vm.currentSearchQuery = savedQuery;
}