2015-04-05 2 views
0

У меня есть основное угловое приложение, пользователи могут публиковать Adverts, теперь я работаю над тем, как искать/фильтровать рекламные объявления. Я в настоящее время использую фильтр, как так ..Нужна помощь в структурировании Angular app

<a data-ng-repeat="advert in filtered = (adverts | filter:filterBySearch) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit" data-ng-href="#!/adverts/{{advert._id}}" class="list-group-item">

где я создал свой собственный fiter, filterBySearch

У меня также есть ползунок диапазона для фильтрации по диапазону цен, и у меня есть все это работает с разбиением на страницы.

Меня беспокоит, потому что я объявил <section data-ng-controller="AdvertsController"> в верхней части главной страницы, с тем чтобы использовать AdvertsController для Advert логики, я сейчас найти Ставлю логику здесь вокруг, разбиение на страницы, ползунок диапазона, фильтрация логики и т.д. Я хотел бы знать, как лучше разделить эту логику на свои собственные контроллеры или что-то в этом нуждается.

ответ

1

Контроллер не должен использовать такие сложные бизнес-логики сам по себе. Он должен использоваться для привязки элементов области, обработки событий, состояний обновления и т. Д. Я бы предложил потянуть вашу разбивку на страницы, слайдер диапазона, логику фильтрации и т. Д. В выделенном angular service и ввести его в ваш AdvertsController. Таким образом, вы также можете использовать их в любом другом представлении/контроллере, который вам нужен.

Подробнее о модульности в AngularJS here

0

Если у вас есть бизнес-логики, относящиеся к элементам внутри вашего тега, то он по-прежнему имеет смысл иметь весь код внутри этого контроллера. Это может иметь смысл переименовать ваш контроллер в нечто более подходящее для ваших нужд.

Смежные вопросы