2013-09-09 3 views
0

У меня есть функция, которая сопоставляет массив объектов, полученных от службы REST, в группы, а также применяя порядок, который задается по предпочтениям пользователя, доступным только на клиенте.Выбор между фильтром и службой

В настоящее время эта сортировка обрабатывается в Службе, которая вызывает службу REST, но я вижу необходимость отделить эту функциональность от фактического $ HTTP-вызова, поскольку пользователь может переключаться между различными командами сопоставления без повторного вызова вызова $ HTTP.

Поскольку это не простое переупорядочение, целесообразно создать этот процесс сортировки в качестве другой службы или в качестве фильтра?

ответ

1

Фильтры являются конструкциями пользовательского интерфейса, где Services не являются. Если вы обнаружите, что делаете вызовы $http, они должны находиться в Сервисе (или Фабрике). Если вы обнаружили, желая создать фильтр, который также отвечает за сбор данных, я бы это сделать:

  1. Создание службы, которая отвечает за выборку данных
  2. Вводить службу в контроллер и выставить служебные данные через контроллер
  3. Bind данные от контроллера к параметру фильтра

Делать это позволит сохранить надлежащее разделение задач.

+0

Я раскрываю свое собственное замешательство здесь. Данные, которые я получаю из службы, остаются связанными (в $ rootScope и localStorage), но сопоставленные данные хранятся только в представлении. Я считаю, что вы правы, что фильтр является правильным решением для сортировки. –