Модуль AngularJS внутри «корневого модуля»

0

Есть ли способ определить угловой модуль внутри другого модуля? У меня есть шаблон в моем веб-приложении, который вызывается почти на каждой странице приложения. В определении шаблона я установил ng-app. Поэтому для этого ng-приложения я могу объявить модули, которые мне нужны, на всех страницах приложения (или почти на каждой странице). Теперь есть некоторые модули, которые я хочу добавить только на определенные страницы. Проблема в том, что на тех страницах у меня уже есть ng-приложение шаблона.

Итак, есть ли способ сохранить ng-приложение как своего рода корневое ng-приложение, которое объявило модули, которые мне нужны повсюду, а затем добавьте определенные модули внутри определенных страниц тоже?

Это означает, что можно сделать что-то вроде этого:

 <div ng-app="rootApp">
      <div ng-app="specificApp">
         ... 
      </div>
 </div>

RootApp содержит модуль, который объявлен в моем шаблоне, который используется на всех страницах, а спецификатор содержит модули, которые мне нужны только на одной конкретной странице.

Благодаря !

[РЕДАКТИРОВАТЬ] попытка загрузки:

 var reportHolidaysByEmployeeApp = angular.module('reportHolidaysByEmployeeApp', ['fitnetApp', 'ui.bootstrap']);
 angular.bootstrap(document.getElementById("reportHolidaysByEmployeeApp"), ['reportHolidaysByEmployeeApp']);

 reportHolidaysByEmployeeApp.controller('ReportHolidaysByEmployeeCtrl', function($scope, $filter, $timeout) {

fitnetApp - это глобальный модуль, который я загружаю в тег html на каждой странице

Теги:
module

3 ответа

0

У вас не может быть двух ng-приложений на одной веб-странице. Если вам нужно добавить модуль зависимостей для использования определенной страницы

angular.module('reportHolidaysByEmployeeApp').requires.push('thirdpartymodule');

Это будет динамически вводить зависимость в уже запущенном угловом приложении.

0

Если у вас есть отдельные контроллеры для ваших страниц [views], добавьте зависимость в вашем модуле контроллера к [rootApp] или [spcificApp], как нужно вашей странице.

$routeProvider.when('/view1',{
      template:
      controller:view1controller
})

if u need rootApp as dependency in view1 page

in your controller module

angular.module('GlobalCtrl',['rootApp'])
.controller('view1controller')

'

0

Только одно приложение AngularJS может автоматически загружаться в HTML-документ. Первый ngApp, найденный в документе, будет использоваться для определения корневого элемента для автоматической загрузки в качестве приложения. Чтобы запустить несколько приложений в документе HTML, вы должны вручную загрузить их с помощью углового.bootstrap. Приложения AngularJS не могут быть вложены друг в друга. - http://docs.angularjs.org/api/ng.directive:ngApp

Смотрите также

https://groups.google.com/d/msg/angular/lhbrIG5aBX4/4hYnzq2eGZwJ http://docs.angularjs.org/api/angular.bootstrap

  • 0
    Я попытался выполнить начальную загрузку, но это работает только в том случае, если первое приложение ng закрыто перед вторым. Таким образом, нет никакого способа добавить новое приложение ng внутри глобального приложения, чтобы добавить новые конкретные модули на определенную страницу?
  • 0
    как вы загружаете свое приложение? Пожалуйста, предоставьте код ..
Показать ещё 1 комментарий

Ещё вопросы

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