Я только начал использовать AngularJS, поэтому я не эксперт.
У меня есть div, который представляет правильную область моего представления html. В этом div у меня есть контроллер, т.е.
<div class="rightContainer" ng-controller="rightContainerCtrl">...</div>
Внутри этого div у меня есть таблица, область поиска и т. д. Каждая область внутри этого div имеет свои собственные контроллеры, это выглядит так:
<div class="rightContainer" ng-controller="rightContainerCtrl">
...
<div class="search" ng-controller="searchCtrl">...</div>
...
<div class="table" ng-controller="tableCtrl">...</div>
</div>
область поиска, например, имеет свой собственный контроллер и является дочерним элементом rightContainerCtrl, потому что ему нужно изменить некоторый контент в родительском элементе (rightContainerCtrl), но div rightContainer растет, теперь он большой и содержит несколько вложенных контроллеров.
Я думаю, что использование этих вложенных контроллеров в этом контексте плохо, потому что все вложенные контроллеры совместно используют родительскую область, и не всем контроллерам нужен доступ ко всем переменным родительской области, также все контроллеры являются «узниками» rightContainerCtrl, поэтому они сильно связаны с их родительским контроллером.
Это похоже на антишаблон объекта Бога (в данном случае контроллер Бога), так что я думаю, что вместо использования вложенных контроллеров я могу реорганизовать свой код, чтобы исключить контроллер rightContainerCtrl и вместо этого использовать службу (например, в фасаде шаблон проектирования), эта служба затем будет использоваться контроллерами вместо совместного использования переменных области видимости.
но поскольку я не эксперт AngularJs, я не уверен, прав ли я или лучше оставить этот родительский контроллер, может быть, я что-то упускаю, поэтому мой вопрос
Когда лучше использовать вложенные контроллеры (вложенные области видимости), а когда вместо этого лучше использовать сервисы в angularjs?