Comments 19
// оборачиваем весь код в IIFE, дабы не засорять global scope

В 2015-то году не пора ли использовать какие-нибудь модули?
Вы правы. Писал быстро под себя и забыл про тех, кто по-другому подключает скрипты. Будет сделано :)
XD если бы не этот коммент я бы даже не подумал про другой смысл :D:D
Посмотрел, как сделаны модули самого AngularJS. Там всё обёрнуто как раз в IIFE, только они ещё замыкают глобальный angular и undefined. Так и сделаем.
Если так подумать, то зачем сочинять какие-то модули над Angular, если они сами по себе уже модули.
Есть модули (CommonJS, AMD, SystemJS, ES6/2015), а есть ангуляровские… сущности, предназначенные для Dependency Injection. Это вообще-то ортогональные по отношению друг к другу вещи. Первое, это, скажем, compile time, а второе — runtime. Первое добавляет в область видимости классы, а второе — их инстансы. Первое оперирует файлами, второе — объектами.
С помощью angular.module я не подгружу этот ваш «модуль» в нужный момент и только тогда, когда он нужен.
Это я прекрасно понимаю, спасибо. Но, как я уже сказал, я бы предпочел воспользоваться подходом самого Angular. Если Вы как-то используете его «нативные» модули, то и мой сможете.
Ну давайте на примерах, не углубляясь в теорию. Вы используете ng-messages или ng-animate? Вы хотите, чтобы я по-другому оформил свой модуль?
Всё, понял. Дело всё в index.js (которого у меня ещё даже нет), мы о разных вещах говорили. Я имел в виду конкретно этот файл с кодом. Проклятое слово «модуль» :)
Я вообще-то подробно разжевал, что есть модуль, а что есть ангуляровская НЕХ:)
Вообще то я подробно сказал, что я это понимаю :) Просто, так как я мыслил в рамках одного файла, я решил, что Вы намекаете на что-то подобное:

(function(root, factory) {
  if (typeof define === 'function' && define.amd) {
    define(factory);
  } else if (typeof exports === 'object') {
    module.exports = factory();
  } else {
    root.Library = factory();
  }
})(this, function(context) { })


Но такого в нативных модулях нет, вот и всё непонимание :)
Да, этого от вас и пытаются добиться :)

Называется это дело UMD (Universal Module Definition). Подробнее: https://github.com/umdjs/umd
в наш век Git-репозиториев добиться желаемого быстрее пулреквестом. :)
Есть одно замечание, зачем броадкаст делать если вы в компоненте всеравно слушаете событие на $rootScope?
Слушать событие на $rootScope, и удалять его при $destroy компонента правильно, но $broadcast практика плохая, а тем более если на $rootScope.
Only those users with full accounts are able to leave comments. Log in, please.