Простой Угловой вопрос.
Должен ли я определять угловой модуль или нет? Какая разница, если я делаю это так или иначе?
Например, какая разница между выражением var myApp = angular.module('myFirstApp', []);
и angular.module('myFirstApp', [])
?
Если я использую второй вариант, я понимаю, что все мои заводы и т.д. Должны быть точными, правильными? Как и в .factory('myFactory', function() {})
. Но если я использую первый вариант и определяю угловой модуль, я должен также определить свои фабрики и т.д.? как в myApp.factory('myFactory', function() { });
?
И если я цепочки точек (как и во втором варианте), добавлю ли я все в глобальное пространство имен приложения? Но какая разница между этим и определением модуля и добавлением всего в этом случае myApp
?
Пожалуйста, уточните и объясните, извините за очень простой вопрос, я думаю, что ответ на этот вопрос может много связать для меня.
Спасибо.
Редактирование: я думаю, что некоторые из моих вопросов выше можно перефразировать следующим образом: Какая разница между использованием полного углового.module() в качестве геттера каждый раз и глобальной переменной? Почему следует избегать глобальной переменной?
Вам не нужно назначать свой угловой модуль переменной. Но вам нужно определить его так.
angular.module('myModule', []);
Ваши заводы не обязательно должны быть привязаны друг к другу целыми цепочками. Вы можете добавить завод в такой модуль.
angular.module('myModule').factory('myFactory', function() {});
Вы можете использовать angular.module('myModule')
чтобы получить модуль и добавить в модуль контроллеры, заводы, ect....
Это позволяет вам устанавливать контроллеры, заводы, ect... в разные файлы.
Надеюсь, это поможет вам в правильном направлении.
Вот все, что вы хотели знать об угловых, но боялся спросить. : D
https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md
Есть хорошая практика и объяснение, почему вы должны делать что-то одно, а не другое.
Ваш ответ находится в разделе " Определения" (aka Setters).
Нет, они не должны быть прикованы. Это очень просто
angular.module()
- как setter, так и getter. Вы предоставляете второй аргумент, массив зависимостей, чтобы установить (объявить) новый модуль
Без второго аргумента это ссылка на ранее объявленный модуль.
Таким образом, без цепочки вы можете сделать:
// declare new module
angular.module('myFirstApp', []);
// add features of module
angular.module('myFirstApp').controller(...;
angular.module('myFirstApp').directive(...;
Это то же самое, что и делать:
var app = angular.module('myFirstApp', []);
app.controller(....
app.directive(....
Однако лучше всего использовать глобальную переменную и использовать полный angular.module()
качестве геттера каждый раз
это также то же самое, что и использование цепочки
angular.module('myFirstApp', [])
.controller(....
.directive(....
.controller(...;
чем разница между этим и определением модуля? И затем, если я определяю модуль, я должен определить свои службы / фабрики и т. д. таким же образом? Может быть, я используя фазовуюdot chained
неправильно?