2015-06-28 8 views
3

Я работаю через электронную книгу, чтобы узнать весь стек MEAN и столкнулся с нечетной проблемой при работе с угловыми.Order of AngularJS dependency injection

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

Это не работает

var mainApplicationModule = angular.module(mainApplicationModuleName, ['example', 'ngRoute']); 

Это работало

var mainApplicationModule = angular.module(mainApplicationModuleName, ['ngRoute', 'example']); 

Так что я не имею проблему точно, но мне было интересно, если кто-нибудь может объяснить, почему это работает сюда? Я не смог найти ничего о том, как важно иметь дело с определением зависимости. Я могу опубликовать больше своего кода, если это будет полезно.

+0

Это, вероятно, не связано, но является ли ваше имя модуля строкой? – sfletche

+0

Это, да. Почему вы спрашиваете? – natedog

ответ

2

Это происходит из книги Брэда Дайли по теме. Порядок заключается в том, что список вводимых модулей (зависимостей) должен быть в порядке «требуется». Поэтому, если для модуля example требуется ngRoute, тогда ngRoute должен быть до example. Метод

angular.module() использует следующий синтаксис:

angular.module(name, [requires],[configFn])

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

Это объяснение просит ответить на вопрос о возможности ссылки на циркулярный модуль в более сложном случае. Вот некоторые сведения об этом Дэвид М. Карр SO Answer Link.

+0

Спасибо, очень лаконичный, что очищает его! – natedog

+0

Мне нравится ваш вопрос ... учебные пособия не распространяются на «порядок» модулей в параметре «требует» для 'angular.module()'. – Nirmal