Есть ли способ определить угловой модуль внутри другого модуля? У меня есть шаблон в моем веб-приложении, который вызывается почти на каждой странице приложения. В определении шаблона я установил 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 на каждой странице
У вас не может быть двух ng-приложений на одной веб-странице. Если вам нужно добавить модуль зависимостей для использования определенной страницы
angular.module('reportHolidaysByEmployeeApp').requires.push('thirdpartymodule');
Это будет динамически вводить зависимость в уже запущенном угловом приложении.
Если у вас есть отдельные контроллеры для ваших страниц [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')
'
Только одно приложение 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