Возможно ли создать несколько модулей в angular Script? Я просмотрел документацию angular и узнал, что это своего рода концепция основного метода.
Мне нужны примеры, чтобы продемонстрировать это.
Спасибо
Возможно ли создать несколько модулей в angular Script? Я просмотрел документацию angular и узнал, что это своего рода концепция основного метода.
Мне нужны примеры, чтобы продемонстрировать это.
Спасибо
Да, вы можете определить несколько модулей в 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 помогает нам сохранять четкость кода и легко понять, поскольку мы можем объединить несколько модулей для создания приложения. Однако нам нужно иметь в виду, что мы должны модулировать компоненты на основе их функциональности не по их типам.
Только одно приложение 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"
Конечно, вы можете. Просто используйте angular.module('moduleName', [/* dependencies */])
столько раз, сколько # ваших модулей, которые вы хотите создать.
Чтобы получить ссылку на ранее определенный модуль, просто выполните: var myModule = angular.module('moduleName');
, а затем myModule.controller(...)
, myModule.config()
, myModule.constant()
и т.д.
Предлагаемый макет проекта (см. Angular Seed) имеет модуль для вашего приложения, затем другой для ваших контроллеров, другой для ваших сервисов, другой для ваших фильтров и еще один для ваших директив. Конечно, это простое предложение. Другие предлагают альтернативные макеты.
Я думаю, что он смутил модуль с ngApp, поскольку на странице есть только одно приложение (ng-app) и что представление приложения (ngView или < n-view > ) может существовать только один раз. Но, как указано в предыдущих ответах, вы можете создавать столько модулей, сколько хотите, и вводить их в качестве зависимостей в свой "основной" модуль приложения. Обычно я делаю это, чтобы отделить мои директивы, фильтры, контроллеры и т.д. В своих собственных модулях.
Edit:
ngApp - http://code.angularjs.org/1.1.5/docs/api/ng.directive:ngApp
что вы имеете в виду под несколькими модулями? вы можете ввести модуль в другой модуль
angular.module(name[ anotherModule]);