Улучшить эту документацию Просмотреть исходный код angular.injector
- функция в модуле ng
Создаёт объект инжектора, который может использоваться для получения сервисов и для зависимостей (см. введение в зависимость инъекцию).
Использование
angular.injector(modules);
Аргументы
| Параметр | Тип | Подробности |
|---|---|---|
| modules | Array.<string|Function> | Список функций модуля или их псевдонимов. См. |
Возвращает
injector |
Объект инжектора. См. $injector. |
Типичное использование
// create an injector
var $injector = angular.injector(['ng']);
// use the injector to kick off your application
// use the type inference to auto inject arguments, or use implicit injection
$injector.invoke(function($rootScope, $compile, $document){
$compile($document)($rootScope);
$rootScope.$digest();
});
Иногда нужно получить доступ к инжектору работающего Angular приложения снаружи Angular. Возможно, вы хотите ввести и скомпилировать разметку после загрузки приложения. Это можно сделать с помощью дополнительного injector() добавленного к элементам JQuery/jqLite. См. angular.element.
Это довольно редкий случай, но он может возникнуть, если сторонняя библиотека вводит разметку.
В следующем примере новый блок HTML содержащий директиву ng-controller добавляется в конец тела документа с помощью JQuery. Затем мы компилируем и подключаем его к текущей области видимости AngularJS.
var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
$(document.body).append($div);
angular.element(document).injector().invoke(function($compile) {
var scope = angular.element($div).scope();
$compile($div)(scope);
});
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.2.32/docs/api/ng/function/angular.injector