Я внедрил одностраничное приложение с AngularJS
. Страница состоит из области содержимого в середине и разделов, собранных вокруг центра, которые показывают дополнительную информацию и предоставляют средства для управления центром.Связь с контроллером высокого напряжения в AngularJS
Каждая секция (называемая Side Info
) и область содержимого есть контроллер отдельных AngularJS, возложенные на них. В настоящее время я общаюсь через $rootScope.$broadcast
и $scope.$on()
, например.
app.controller('PropertiesController', function ($scope, $rootScope) {
$scope.$on('somethingHappened', function(event, data){
// react
});
});
Я тогда звоните общаться с другими контроллерами:
$rootScope.$broadcast('somethingHappened', data);
У меня есть довольно много общения происходит между контроллерами. Особенно, если что-то происходит в области содержимого, необходимо принять несколько элементов дополнительной информации. Другой путь также является частым: пользователь отправляет форму (расположенную в дополнительной информации), а область содержимого и другие элементы дополнительной информации должны принимать.
Мой вопрос: Есть ли лучший способ справиться SPA
с тяжелой связи контроллера?
Код работает нормально, но он уже немного запутан (например, трудно найти, какие события обрабатываются там, где и т. Д.). Так как приложение, вероятно, будет расти в ближайшие недели, я бы хотел сделать эти изменения (если есть какие-либо лучшие решения) как можно скорее.
Я делаю свой первый проект с угловым выражением, состоящий в создании одностраничного приложения. Я создаю шаблоны внутри шаблонов, и я обработал все области из директив в массив. Тогда я могу их поймать и изменить. не знаю, хорошо ли это, или если это может вам помочь. – nada
Использование общей службы - это еще один способ общения. –
Часто вы можете размещать общие вещи в уровне страницы PagesController. Таким образом, вы можете легко получить доступ к ним через объем. Иногда вы можете добавить некоторую услугу, которая будет делиться переменными состояния. – dubadub