Tính năng rất phổ biến trong một số phần của ứng dụng của tôi là hộp tìm kiếm chấp nhận một chuỗi và sau đó lọc một bảng dựa trên chuỗi.Cách chính xác để lập trình hộp văn bản tìm kiếm trong angularJs
Điều tôi đang hướng tới là khả năng cho phép người dùng nhập nội dung nào đó và tự động sau một vài phút trì hoãn kết quả tự cập nhật. tức là không cần nhấn nút enter.
Phân loại ofcourse của dữ liệu sẽ được thực hiện bằng cách sử dụng các bộ lọc AngularJs. Tuy nhiên trước khi chúng tôi cập nhật bộ lọc, tôi tin rằng trước hết chúng tôi phải hiểu rằng người dùng đã hoàn tất việc nhập dữ liệu nhập và hiện đang chờ kết quả.
Vì vậy, tôi đã lập bản đồ chỉ thị sẽ được đính kèm vào hộp nhập tìm kiếm.
<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);
}
}
}
}
});
Câu hỏi của tôi là, đây có phải là cách tiếp cận đúng để giải quyết vấn đề này hoặc có giải pháp tốt hơn không?
Điều đó chỉ hoạt động nếu khách hàng có tất cả dữ liệu. – CodesInChaos
@CodesInChaos - đúng, nó chỉ lọc dữ liệu được tải vào ứng dụng. –