내 응용 프로그램의 여러 부분에서 매우 일반적인 기능은 문자열을 허용 한 다음 문자열을 기반으로 테이블을 필터링하는 검색 상자입니다.angularJs에서 검색 텍스트 상자를 프로그래밍하는 올바른 방법
내가 목표로하는 것은 사용자가 무언가를 입력 할 수 있도록 허용하는 기능이며 결과가 자동으로 업데이트되기까지 몇 밀리 초가 지나면 자동으로 허용됩니다. 입력 버튼을 누르지 않아도됩니다.
물론 데이터 정렬은 AngularJs 필터를 사용하여 수행 할 수 있습니다. 그러나 필터를 업데이트하기 전에 사용자가 입력을 완료하고 결과를 기다리고 있음을 먼저 이해해야한다고 생각합니다.
그래서 검색 입력 상자에 첨부 될 지시문을 매핑했습니다.
<input type="text" update-filter placeholder="Enter search term">
//and the directive goes like this
app.directive('updateFilter', [ '$timeout', function($timeout){
var delay;
return {
link: function(scope, element){
element.on('keypress', function(){
if(!delay) {
delay = $timeout(function() {
//perform the activity of updating the filter here
delay = undefined;
},50);
}
}
}
}
});
제 질문은이 문제를 해결하는 데 올바른 접근 방식입니까? 아니면 더 나은 해결책이 있습니까?
클라이언트에 모든 데이터가있는 경우에만 작동합니다. – CodesInChaos
@CodesInChaos - 사실, 앱에로드되는 데이터 만 필터링합니다. –