Знаменитый 1032 * 1 «Руководство по стилю» Джона Папы говорит об использовании IIFE, чтобы избежать подобных var myApp = angular.module('myApp',[]);
и загрязнении глобального пространства имен.
Приведенный пример:
регистратор. js
(function() {
'use strict';
angular
.module('app')
.factory('logger', logger);
function logger() { }
})();
хранилище. js
(function() {
'use strict';
angular
.module('app')
.factory('storage', storage);
function storage() { }
})();
Как это работает? Не нужно ли мне объявить модуль хотя бы один раз? Например, с angular.module('app',[]);
(обернутым во IIFE? (Вместо var app = angular.module('app',[]);
, чтобы избежать глобальной переменной))?
Однако два использования angular.module('app')
в примере не объявляют, но будут затем оцените angular.module('app')
дважды, что, безусловно, не может быть хорошей вещью (на самом деле, я читал ранее столь высоко оцененный вопрос, в котором говорилось, что это плохая вещь, и что должна быть одна ссылка - но это будет глобальный, что тоже плохо).
Что это такое? Или я могу объявить мои angular.module('app')
, плюс несколько контроллеров, сервировок, фабрики, директивы, в отдельных файлах, в отдельных IIFE ? Если да, то как?