У меня есть небольшое веб-приложение, которое принимает input
от человека для создания параметров поиска. Я использую ng-model-options
чтобы отменить функцию ng-change
для выполнения поиска.
У меня есть маленькие стрелки рядом с именами столбцов в таблице, которые позволяют сортировать пользователей (есть три значка - up-down
, up
и down
для sort_field и sort_order, отображаемых с использованием ng-class
); Я хотел бы зарегистрировать изменения на них и выполнить поиск после небольшой задержки с использованием debounce. Проблема в том, что я не уверен, как использовать ng-model
для привязки определенного параметра к этим значкам. Я не хочу, чтобы кто-то стучал по значкам сортировки и разбивал сервер или их браузер.
Я бы предпочел сделать одно место на странице, которое говорит, чтобы посмотреть объект search_param
и запустить поиск 500 миллисекунд после того, как он изменился. Таким образом, любое из полей ввода или сортировки будет вызываться, когда пользователь выполнит их редактирование, которое запускает функцию для отправки этих параметров в конечную точку.
Какова стратегия в AngularJS для этого? В настоящее время все поля ввода связывают поле в объекте search_param
и имеют ng-model-options
для отклонений при изменении. Это много повторяющегося кода.
Недавно я ответил кому-то в отношении таблиц, а также объем усилий и работы, которые вы должны внести, чтобы получить очень базовую функциональность (сортировка, поиск, разбивка на страницы).
Зачем изобретать колесо, если для вас есть отличная библиотека: Угловые данные
Я разместил здесь полное решение для использования вытаскивания данных из источника json: Ng-repeat, пытающийся создать индекс счетчика
В вашем случае вам нужно будет пройти документацию на стороне сервера на сайте Datatable, чтобы правильно форматировать данные: https://datatables.net/manual/server-side
ng-change
? В этом случае вы можете использовать$timeout
, а если в очереди нет поиска, вы можете начать его с$timeout
. Если есть, просто отмените$timeout
и начните новый.