DRY up-моделирование

0

У меня есть небольшое веб-приложение, которое принимает 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 для отклонений при изменении. Это много повторяющегося кода.

  • 0
    Вы везде используете одну и ту же функцию для ng-change ? В этом случае вы можете использовать $timeout , а если в очереди нет поиска, вы можете начать его с $timeout . Если есть, просто отмените $timeout и начните новый.
Теги:
debouncing

1 ответ

0

Недавно я ответил кому-то в отношении таблиц, а также объем усилий и работы, которые вы должны внести, чтобы получить очень базовую функциональность (сортировка, поиск, разбивка на страницы).

Зачем изобретать колесо, если для вас есть отличная библиотека: Угловые данные

Я разместил здесь полное решение для использования вытаскивания данных из источника json: Ng-repeat, пытающийся создать индекс счетчика

В вашем случае вам нужно будет пройти документацию на стороне сервера на сайте Datatable, чтобы правильно форматировать данные: https://datatables.net/manual/server-side

Ещё вопросы

Сообщество Overcoder
Наверх
Меню