Улучшить эту документацию Просмотреть исходный код angular.injector
- функция в модуле ng
Обзор
Создаёт объект инжектора, который можно использовать для получения сервисов и для зависимостей (см. введение в зависимость).
Использование
angular.injector(modules, [strictDi]);
Аргументы
| Параметр | Тип | Описание |
|---|---|---|
| modules | Array.<string|Function> | Список функций модулей или их псевдонимов. См. |
| strictDi (необязательно) | boolean | Определяет, должен ли инжектор работать в строгом режиме, который запрещает выведение названий аргументов. (по умолчанию: false) |
Возвращает
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();
});
Иногда нужно получить доступ к инжектору текущего приложения AngularJS извне AngularJS. Например, нужно ввести и скомпилировать разметку после запуска приложения. Это можно сделать с помощью дополнительного 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–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ng/function/angular.injector