Angularjs контроллер маршрутизации из другого модуля

0

Я создаю большое приложение, и моя структура выглядит следующим образом:

Каждый модуль имеет собственную структуру папок для контроллеров, директив и т.д.

Каждая папка имеет файл 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?

  • 0
    Вы пытались запустить это, какую ошибку вы получаете
Теги:
routes

1 ответ

1

Ваш файл модулей:

   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]);
  • 1
    Хорошо, если модуль включен, я могу использовать любой контроллер в другом модуле? А как насчет двух контроллеров с одинаковым именем?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню