Maison >interface Web >js tutoriel >Implémentation de la fonction anti-rebond dans angulaire.js et vue.js
Manuel de développement AngularJS pour apprendre)
Solution dans angulaire.jsÉcrivez la fonction anti-rebond en tant que service , ce qui est plus pratique Appelez à :.factory('debounce', ['$timeout','$q', function($timeout, $q) { // The service is actually this function, which we call with the func // that should be debounced and how long to wait in between calls return function debounce(func, wait, immediate) { var timeout; // Create a deferred object that will be resolved when we need to // actually call the func var deferred = $q.defer(); return function() { var context = this, args = arguments; var later = function() { timeout = null; if(!immediate) { deferred.resolve(func.apply(context, args)); deferred = $q.defer(); } }; var callNow = immediate && !timeout; if ( timeout ) { $timeout.cancel(timeout); } timeout = $timeout(later, wait); if (callNow) { deferred.resolve(func.apply(context,args)); deferred = $q.defer(); } return deferred.promise; }; }; }])Appelez la méthode, injectez l'anti-rebond dans le contrôleur/la directive qui doit utiliser cette fonction, et injectez également $watch, puis :
$scope.$watch('searchText',debounce(function (newV, oldV) { console.log(newV, oldV); if (newV !== oldV) { $scope.getDatas(newV); } }, 350));Vous avez terminé ! Solution dans Vue.jsEnregistrez d'abord l'anti-rebond dans le fichier de fonction publique
export function debounce(func, delay) { let timer return function (...args) { if (timer) { clearTimeout(timer) } timer = setTimeout(() => { func.apply(this, args) }, delay) } }Introduisez ensuite l'anti-rebond dans le composant qui doit être utilisé et dans le fichier créé Appel de vie dans le cycle :
created() { this.$watch('searchText', debounce((newSearchText) => { this.getDatas(newSearchText) }, 200)) }Vous avez terminé ! Citation
1. https://stackoverflow.com/questions/29771011/angularjs-watch-with-debounce 2. https://www.cnblogs.com/fsjohnhuang/p/4147810.htmlD'accord, cet article est terminé (si vous voulez en voir plus, rendez-vous sur le site PHP chinois
Manuel d'utilisation AngularJS pour apprendre), Si vous avez des questions, vous pouvez laisser un message ci-dessous.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!