Угловой: определение модуля или нет

0

Простой Угловой вопрос.

Должен ли я определять угловой модуль или нет? Какая разница, если я делаю это так или иначе?

Например, какая разница между выражением var myApp = angular.module('myFirstApp', []); и angular.module('myFirstApp', [])?

Если я использую второй вариант, я понимаю, что все мои заводы и т.д. Должны быть точными, правильными? Как и в .factory('myFactory', function() {}). Но если я использую первый вариант и определяю угловой модуль, я должен также определить свои фабрики и т.д.? как в myApp.factory('myFactory', function() { }); ?

И если я цепочки точек (как и во втором варианте), добавлю ли я все в глобальное пространство имен приложения? Но какая разница между этим и определением модуля и добавлением всего в этом случае myApp?

Пожалуйста, уточните и объясните, извините за очень простой вопрос, я думаю, что ответ на этот вопрос может много связать для меня.

Спасибо.

Редактирование: я думаю, что некоторые из моих вопросов выше можно перефразировать следующим образом: Какая разница между использованием полного углового.module() в качестве геттера каждый раз и глобальной переменной? Почему следует избегать глобальной переменной?

Теги:

3 ответа

1
Лучший ответ

Вам не нужно назначать свой угловой модуль переменной. Но вам нужно определить его так.

angular.module('myModule', []);

Ваши заводы не обязательно должны быть привязаны друг к другу целыми цепочками. Вы можете добавить завод в такой модуль.

angular.module('myModule').factory('myFactory', function() {});

Вы можете использовать angular.module('myModule') чтобы получить модуль и добавить в модуль контроллеры, заводы, ect....

Это позволяет вам устанавливать контроллеры, заводы, ect... в разные файлы.

Надеюсь, это поможет вам в правильном направлении.

1

Вот все, что вы хотели знать об угловых, но боялся спросить. : D

https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md

Есть хорошая практика и объяснение, почему вы должны делать что-то одно, а не другое.

Ваш ответ находится в разделе " Определения" (aka Setters).

0

Нет, они не должны быть прикованы. Это очень просто

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(....
  • 0
    Спасибо. Разве это не то, что я имею в виду под точечной цепочкой? например, когда вы пишете .controller(...; чем разница между этим и определением модуля? И затем, если я определяю модуль, я должен определить свои службы / фабрики и т. д. таким же образом? Может быть, я используя фазовую dot chained неправильно?
  • 0
    Не уверен, что вы спрашиваете
Показать ещё 23 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню