我正在構建一個角度指令,它在輸入值變化時運行一個函數,我想在運行此函數之前等待300ms,但是如果300ms之前走了,我需要重置延遲到300毫秒。所以,只有當300ms的價值變動,則函數應該運行:具有延遲功能的輸入觸發器,等待輸入值發生變化
我的代碼
(function() {
'use strict';
angular
.module('address',[])
.directive('address', ['Address', function (Address) {
return {
restrict: 'E',
transclude: true,
templateUrl: 'partials/address.html',
link: function (scope, elem, attrs) {
var delay = "300";
scope.$watch('searchparam', function(){
if(!_.isUndefined(scope.searchparam) && scope.searchparam.length >= 3) {
// here i need some delay timer
Address.get(scope.searchparam).then(function(data){
console.log("data: ", data);
scope.addressList = data;
}, function(status){
console.log("status: ", status);
scope.errorHandler = status;
});
}
});
}
};
}]);
})();
的address.get是一個異步服務,返回地址
可能重複[如何寫AngularJS一個去抖服務(http://stackoverflow.com/questions/ 13320015 /如何寫-a-debounce-service-in-angularjs) – DTing
不知道它被稱爲反彈,但即時嘗試關閉 –