1

スコープ変数を監視する次の角度付きウォッチがあり、次のことを実行します。デバウンスを使用して、リクエストをバックエンドにバンドルします。

  var myWatch = $scope.$watch('myQuery', _.debounce(loadMyData, 1000),true);

この myQuery が undefined を返した場合、このデバウンスは必要なく、代わりにバックエンド呼び出しを直接実行する必要があります。

  var myWatch =  $scope.$watch('myQuery', function(oldquery,newquery){
      if(newquery){
        _.debounce(loadMyData(newquery), 2000,true);
      }else{
        loadMyData(newquery);
      }
  },true);

現在、デバウンスは私のリクエストを適切にバンドルしていません。

4

1 に答える 1

1

新しい関数を変数に格納し、ウォッチ リスナーで呼び出す必要があります。

var debouncedLoadMyData = _.debounce(loadMyData, 1000, true),
    myWatch = $scope.$watch('myQuery', function (oldquery, newquery) {
        if (newquery) {
            debouncedLoadMyData(newquery);
        } else {
            loadMyData(newquery);
        }
    }, true)
;
于 2014-10-13T01:11:51.333 に答える