Я создаю большое приложение, и моя структура выглядит следующим образом:
Каждый модуль имеет собственную структуру папок для контроллеров, директив и т.д.
Каждая папка имеет файл index.js, а затем другие файлы для разделения каждого контроллера, каждой директивы и т.д.
Файл index.js содержит определение модуля. Например, для контроллеров бизнес-модуля выше:
angular.module('myCompany.businessModule.controllers', []);
Здесь нет зависимостей, но могут быть и такие.
Затем в firstCtrl.js я могу повторно использовать этот модуль и добавить к нему контроллер:
angular.module('myCompany.businessModule.controllers').controller('firstCtrl', function(){
});
Затем app.js агрегирует весь модуль, который я хочу для моего приложения, добавив их в массив зависимостей.
angular.module('myApp', ['myCompany.businessModule', 'myCompany.anotherBusinessModule'],'ngRoute');
Теперь идет маршрут, который включает в себя просмотр других модулей. Мой маршрут выглядит следующим образом:
var myApp = angular.module('myApp');
myApp.config(function($routeProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the about page
.when('/about', {
templateUrl : 'pages/about.html',
controller : 'firstCtrl'
})
});
Теперь вопрос в том, могу ли я подключить контроллер от другого модуля к конкретному контроллеру, который ввел этот модуль, как в моей ситуации, когда myApp содержит myCompany.businessModule.controllers и имеет firstCtrl?
Ваш файл модулей:
angular.module('myApp').config(function($routeProvider){
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the about page
.when('/about', {
templateUrl : 'pages/about.html',
controller : 'firstCtrl'
});
});
Включите его как зависимость, если вы хотите его использовать.
angular.module('app',[other deps]);