Я пытался использовать _lodash.debounce(), и у меня это работает. Однако я не уверен, работает ли он наилучшим образом. Я посмотрел пример на веб-сайте lodash, и они кажутся простыми примерами, которые не передают параметры. Вот что у меня есть:
$scope.parsePid = _.debounce(function () {
$scope.$apply(function () {
var pid = $scope.option.sPidRange;
if (pid == null || pid === "") {
$scope.pidLower = null;
$scope.pidUpper = null;
}
else if (pid.indexOf("-") > 0) {
pid = pid.split("-");
$scope.pidLower = parseInt(pid[0]);
$scope.pidUpper = parseInt(pid[1]);
}
else {
$scope.pidLower = parseInt(pid);
$scope.pidUpper = null;
}
});
}, 1500);
Приведенный выше код возвращает функцию $scope.parsePid
, которая была отклонена. Обратите внимание, что в 4-й строке я получаю значение $scope.option.SPidRange
и использую его в функции. Я действительно хочу как-то передать этот параметр, а не получить его таким образом.
Я вызываю функцию следующим образом:
$scope.$watch("option.sPidRange", function (pid) {
if (pid !== null) {
$scope.parsePid();
}
});
Здесь значение pid должно быть равно $scope.parsePid
Я хотел бы передать это значение pid в функцию debounce, но я не уверен, как это сделать. Я пробовал несколько разных вещей, но функция debounce выдает ошибку.
Можно ли передать параметры в debounced function $scope.parsePid()
?