Angular $ routeProvider — вложенные контроллеры?

У меня есть приложение Angular, которое в настоящее время использует $routeProvider для сопоставления маршрута с контроллером и шаблоном.

Некоторые из маршрутов отображают коллекции элементов, и на данный момент он просто включает еще один шаблон для каждого элемента, обращаясь к контроллеру родительского шаблона.

шаблон основного маршрута...

<div ng-repeat="item in vm.collection">
   <div ng-include="'/views/item.html'"></div>
</div>

Однако по мере роста этого приложения кажется, что включение, представление элемента, должно иметь свой собственный контроллер, отдельный от контроллера коллекции, что позволит упростить его повторное использование во всем приложении.

Как лучше всего подойти к этому?


person Matt Bryson    schedule 02.03.2016    source источник


Ответы (1)


Если у вас есть функции, которые можно рассматривать как компонент, вам следует использовать службы (если у них нет пользовательского интерфейса) или директивы (если у них есть пользовательский интерфейс). ).

Если функциональность, которую вы не хотите отделять, не настолько универсальна, чтобы ее можно было реализовать как повторно используемый компонент, вы можете создать контроллер и использовать его с директивой ng-controller.

Другой способ использовать контроллер — переключиться на UI-Router, что позволяет использовать вложенные представления.

person Andrés Esguerra    schedule 03.03.2016