Ответ 1
Q: Например, у меня есть модуль в моем приложении, и у меня есть директивы, написанные для этого, и я хочу добавить еще несколько модулей в свое приложение, а также хочу повторно использовать существующие директивы, написанные для другого модуля. Как я могу достичь этого. Не только модули, которые применяются к фильтрам, config и т.д.
Когда вы объявляете модуль, вы указываете его зависимости. Поэтому, если у вас есть такая директива:
angular.module( 'moduleA', [] )
.directive( 'myDirective', function () {
// ...
});
Вы можете потребовать этот модуль из другого модуля:
angular.module( 'moduleB', [ 'moduleA' ] );
Аргумент массива angular.module
- это список зависимостей.
В: Могу ли я иметь вспомогательные модули, определенные внутри модуля?
Модули технически все независимы, но они очень распространены для подделки. Поэтому мы можем определить moduleA
с ним "подмодули" следующим образом:
angular.module( 'moduleA.one', [] );
angular.module( 'moduleA.two', [] );
angular.module( 'moduleA', [
'moduleA.one',
'moduleA.two'
]);
И понятно разработчику/читателю, что moduleA.one
и moduleA.two
являются частью moduleA
, но также в любое время, когда другой модуль зависит от moduleA
, его два подмодуля также будут включены.
Но технически все они независимы, поэтому moduleB
также может потребовать moduleA.two
, если он захочет сделать это.
Q: Как я могу добавить контроллер в элемент динамически, это не должно быть статический, то есть через html-разметка ng-контроллера.
Это, вероятно, не очень хорошая идея. "Просмотр" - официальная запись. Какой ваш вариант использования?
В: Если я хочу поделиться вещами во всех модулях, как я могу это сделать.. Для Например, у меня есть переменная, определенная вне всех модулей в моем приложении и Я просто хочу получить доступ к ним внутри модулей. Возможно ли, у меня есть это сомнение, поскольку оно полностью работает на отдельных областях, scope и rootScope и т.д.
Я не уверен, что понимаю, о чем вы спрашиваете. Но когда вы определяете что-то в модуле, вы можете получить к нему доступ из любого другого, просто потребовав его, как обсуждалось выше. Но в приложении AngularJS должно быть что угодно "вне всех модулей" - все должно быть в модуле, потому что иначе оно определено в глобальной области (например, window
), и это просто плохая практика.
Чтобы лучше понять, как модули могут быть структурированы с большой пользой, ознакомьтесь с моим ngBoilerplate
kickstarter: http://ngbp.github.io/ngbp/. Структура модуля специально разработана для повторного использования кода и демонстрирует многие из этих концепций на практике.
Не стесняйтесь рассказывать об одном из них, и я буду пересматривать ответы.