Подтвердить что ты не робот

Несколько модулей в Angularjs

Возможно ли создать несколько модулей в angular Script? Я просмотрел документацию angular и узнал, что это своего рода концепция основного метода.

Мне нужны примеры, чтобы продемонстрировать это.

Спасибо

4b9b3361

Ответ 1

Да, вы можете определить несколько модулей в angularJS, как указано ниже.

var myApp = angular.module('myApp', [])
var myApp2 = angular.module('myApp2', [])

Однако не забудьте определить зависимость в каждом объявлении модуля, как показано ниже. Предположим, что myApp2 зависит от myApp. Следовательно, декларация будет похожа на,

var myApp = angular.module('myApp', [])
var myApp2 = angular.module('myApp2', ['myApp'])

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

Ответ 2

Только одно приложение AngularJS может автоматически загружаться в HTML-документ. Первый ngApp, найденный в документе, будет использоваться для определения корневого элемента для автоматической загрузки в качестве приложения. Чтобы запустить несколько приложений в документе HTML, вы должны вручную загрузить их с помощью angular.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

вы также можете использовать только одно ng-приложение, но объедините 2 модуля следующим образом:

var moduleA = angular.module("MyModuleA", []);
moduleA.controller("MyControllerA", function($scope) {
  $scope.name = "Bob A";
});

var moduleB = angular.module("MyModuleB", []);
moduleB.controller("MyControllerB", function($scope) {
  $scope.name = "Steve B";
});

angular.module("CombineModule", ["MyModuleA", "MyModuleB"]);

а затем ng-app="CombineModule"

Ответ 3

Конечно, вы можете. Просто используйте angular.module('moduleName', [/* dependencies */]) столько раз, сколько # ваших модулей, которые вы хотите создать.

Чтобы получить ссылку на ранее определенный модуль, просто выполните: var myModule = angular.module('moduleName');, а затем myModule.controller(...), myModule.config(), myModule.constant() и т.д.

Предлагаемый макет проекта (см. Angular Seed) имеет модуль для вашего приложения, затем другой для ваших контроллеров, другой для ваших сервисов, другой для ваших фильтров и еще один для ваших директив. Конечно, это простое предложение. Другие предлагают альтернативные макеты.

Ответ 4

Я думаю, что он смутил модуль с ngApp, поскольку на странице есть только одно приложение (ng-app) и что представление приложения (ngView или < n-view > ) может существовать только один раз. Но, как указано в предыдущих ответах, вы можете создавать столько модулей, сколько хотите, и вводить их в качестве зависимостей в свой "основной" модуль приложения. Обычно я делаю это, чтобы отделить мои директивы, фильтры, контроллеры и т.д. В своих собственных модулях.

Edit:

ngApp - http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngApp

Ответ 5

что вы имеете в виду под несколькими модулями? вы можете ввести модуль в другой модуль

angular.module(name[ anotherModule]);