Как загрузить модули AMD при использовании Angular JS?

По какой-то странной причине Angular JS имеет собственную модульную систему, которая не является ни AMD, ни CommonJS.

У меня есть много существующих модулей в формате AMD. Я хотел бы использовать их в приложении Angular.

Я хотел бы избежать перезаписи каких-либо модулей AMD. Если возможно, я также хотел бы избежать использования собственной модульной системы Angular.

Можно ли использовать модули AMD при использовании Angular? можно ли избежать пользовательской модульной системы Angular?


person mikemaccana    schedule 24.04.2013    source источник
comment
Я не знаю, является ли избегание правильной идеей здесь. Я думаю, вы просто спрашиваете, как использовать ваши модули AMD, вот и все. Вопрос в том, как лучше использовать старые модули AMD. Я не уверен в ответе. Я пришел к этому вопросу немного с другой стороны. Но я бы не рекомендовал избегать шаблона Angular. Но мне было бы очень любопытно, как лучше всего использовать модули AMD, созданные в других проектах, и т. д. Другие ответы интересны, но я не чувствую, что они действительно справедливо ответили на этот вопрос.   -  person vbullinger    schedule 09.04.2014


Ответы (2)


Вам нужно определить компоненты Angular в «Angular way» (например, angular.module('yourApp').directive('someDirective',...)), но вы, безусловно, можете использовать AMD как для упаковки компонентов Angular, так и для втягивание не-Angular компонентов в Angular. Ознакомьтесь с этим исходным проектом.

person Jeff Whelpley    schedule 24.04.2013

Вы не можете заменить определения модуля Angular определениями AMD. На данный момент вы должны обернуть свой код Angular в определения AMD.

Еще одна вещь, которую следует отметить, это то, что на данный момент нет реального способа «ленивой загрузки» модулей. В конечном итоге вам придется потребовать все модули angular, которые вы собираетесь использовать в своем приложении, в определении основного модуля angular, поэтому преимущества использования AMD на данный момент ограничены.

Команда разработчиков говорит, что в какой-то момент в будущем они будут поддерживать ленивую загрузку, и это единственная причина, по которой ваши файлы теперь должны быть упакованы в AMD.

person abject_error    schedule 25.04.2013
comment
Спасибо. Моя команда также использует AMD в качестве стандарта для самых разных приложений, поэтому важно иметь возможность загружать эти модули без необходимости конвертировать их в другой, менее распространенный формат. - person mikemaccana; 25.04.2013
comment
какова наилучшая практика для угловых разработчиков? - person FutuToad; 29.07.2014