19

私は _lodash.debounce() を使用しようとしてきましたが、動作しています。ただし、それが最善の方法で機能しているかどうかはわかりません。lodash Web サイトの例を見たところ、パラメータを渡さない単純な例のようです。ここに私が持っているものがあります:

$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 の値をデバウンスされた関数に渡したいのですが、これを行う方法がわかりません。いくつか試してみましたが、デバウンス機能でエラーが発生しました。

debounced にパラメータを渡すことは可能function $scope.parsePid()ですか?

4

1 に答える 1