Модуль ввода angularjs после инициализации приложения
Привет всем, я пытался сделать это без удачи в течение нескольких дней.
есть ли в любом случае асинхронно загружать некоторые js-скрипты (которые содержат угловые модули) и вставлять их в работающее приложение после его инициализации.
По сути, у меня есть контейнерный DOM-элемент, который будет заполнен некоторым HTML-кодом, запрашиваемым с сервера. На основе этого HTML-кода я решу, какие js-файлы (модули) потребуются, затем загружу их асинхронно, вставлю модули в угловое приложение и скомпилирую контент с новыми внедренными модулями.
Я пытался, но каждый раз, когда я делаю метод начальной загрузки, вставляющий модуль, главный контроллер запускается и стирает все мое состояние области.:(
Любая помощь здесь?
2 ответа
Возможно, это может помочь?
app.requires.push("myModule");
Внедрение модуля, когда у вас есть доступ только к переменной модуля
Это некрасиво, но работает: http://jsfiddle.net/MzseV/7/
Это в основном работает путем итерации модуля _invokeQueue
участвовать и применять функции в рамках использования провайдеров, используемых для регистрации сервисов, контроллеров и директив (ПРИМЕЧАНИЕ: они должны быть захвачены до начальной загрузки AFAIK). Это, вероятно, также перерегистрирует все, что вы ранее зарегистрировали, так что вы можете захотеть, чтобы какая-то эвристика выбрала только те, которые вы хотите, хотя я не уверен, есть ли какие-либо повреждения при перерегистрации.
Опять же, это довольно отвратительно и хакерски, поэтому я бы использовал только в крайнем случае.
Вот вопрос, который я задал и позже ответил об этом.
РЕДАКТИРОВАТЬ: только что заметил, сколько лет этот вопрос, надеюсь, он все еще кому-то помогает.