Возможно, в одной оболочке может быть множество угловых модулей, прикрепленных к различным областям. Но могут ли модули в AngularJS «разговаривать» друг с другом? Если да, то как?Связь между модулями в AngularJS
ответ
Существуют различные способы модуля могут взаимодействовать или обмениваться информацией
Модуль может быть введен в другой модуль, в этом случае модуль контейнера имеет доступ ко всем элементам впрыскиваемого модуля. Если вы посмотрите на angular seed проекта, модули созданы для директивы, контроллеры, фильтры и т.д., что-то вроде этого
angular.module ("MyApp", [ "myApp.filters", "myApp.services", «myApp.directives "," myApp.controllers "]) Это скорее механизм повторного использования, а не механизм связи.
Второй вариант, как объяснил @Eduard, - использовать службы. Поскольку службы являются одноточечными и могут быть введены в любой контроллер, они могут действовать как механизм связи.
Поскольку @Eduard снова указал, что третий вариант заключается в использовании родительского контроллера с использованием объекта $ scope, поскольку он доступен для всех дочерних контроллеров.
Вы также можете ввести $ rootScope в контроллеры, которым необходимо взаимодействовать и использовать методы $ broadcast и $ on для создания шаблона служебной шины, в котором контроллеры взаимодействуют с использованием механизма pub \ sub.
Я бы наклонился к 4-му варианту. См. Также более подробную информацию. What's the correct way to communicate between controllers in AngularJS?
Вы можете использовать services и контроллеры наследования (описано здесь http://docs.angularjs.org/guide/dev_guide.mvc.understanding_controller)
в любом случае, вы shuold рассматривать не имеющие контроллеры tighlty в сочетании.
[ссылка] (http://docs.angularjs.org/guide/dev_guide.mvc.understanding_controller) сломана вы можете это исправить –
Использование механизма обслуживания для связи между модульными контроллерами.
(function() {
'use strict';
//adding moduleB as dependency to moduleA
angular.module('Myapp.moduleA', ['Myapp.moduleB'])
.controller('FCtrl', FCtrl)
.service('sharedData', SharedData);
//adding the dependency shareData to FCtrl
FCtrl.$inject = ['sharedData'];
function FCtrl(sharedData) {
var vm = this;
vm.data = sharedData.data;
}
//shared data service
function SharedData() {
this.data = {
value: 'my shared data'
}
}
//second module
angular.module('Myapp.moduleB', [])
.controller('SCtrl', SCtrl);
SCtrl.$inject = ['sharedData'];
function SCtrl(sharedData) {
var vm = this;
vm.data = sharedData.data;
}
})();
И HTML следующим образом:
<html ng-app="firstModule">
<body>
<div ng-controller="FCtrl as xyz">
<input type=text ng-model="xyz.data.value" />
</div>
<div ng-controller="SCtrl as abc">
<input type=text ng-model="abc.data.value" />
</div>
</body>
</html>
- 1. Связь между модулями 0:
- 2. связь между модулями уха
- 3. Связь между модулями Zend
- 4. RequireJS - Связь между модулями
- 5. Связь между модулем и DTO между модулями
- 6. Связь между модулями услуг/на экране виджетов
- 7. связь между модулями в zend framework 2
- 8. Обмен между модулями с AngularJS?
- 9. Связь между двумя модулями Arduino с модулями HC05 и HC06
- 10. Связь между гибкими модулями по интерфейсам
- 11. maven связь между двумя модулями (web)
- 12. Связь с модулями Java
- 13. Связь между крючками и модулями Drupal
- 14. AngularJS: Связь между директивами
- 15. Связь между директивами angularjs
- 16. Связь между контроллерами - angularjs
- 17. AngularJS как настроить провайдера между двумя модулями?
- 18. Angularjs Обмен данными между двумя модулями
- 19. AngularJS: Доля завода между несколькими модулями
- 20. Связь между AngularJS и DDBB
- 21. Как мне установить связь между двумя модулями в GWT
- 22. Невозможно установить связь между двумя модулями в проекте Android?
- 23. Угловое, общаться между модулями
- 24. Использование RxJS для реализации MessageBus для связи между модулями angularjs
- 25. Связь между директивами paren-child в angularJS
- 26. связь между контроллером и видом в angularjs
- 27. Призма: новый проект против нового модуля и связь между модулями
- 28. JSDoc: Что такое связь между модулями и пространствами имен
- 29. зависимости остерегайтесь между модулями
- 30. Межпроцессное взаимодействие между 3 модулями
Я идя с 4-м вариантом. Большое спасибо. –
Я немного запутался здесь (на четвертом, если быть более конкретным). В документации указано, что каждое приложение имеет свой собственный '$ rootScope'. Когда вы говорите, что нужно вводить '$ rootScope', вы имеете в виду, что' 'rootScope' из' firstModule' необходимо ввести в контроллер 'secondModule'? –
приложение не является модулем. Как правило, это только одно приложение с несколькими модулями. '$ rootscope' делится между модулями в одном приложении. – Chandermani