Улучшить эту документацию Посмотреть исходный код $compileProvider
Обзор
Методы
-
directive(name, directiveFactory);
Регистрация нового директива в компиляторе.
Параметры
Параметр Тип Описание name stringObjectИмя директивы в верхнем регистре с маленькой буквы (например,
ngBindчто будет соответствоватьng-bind), или объект-карта директива, где ключи — имена, а значения — фабрики.directiveFactory function()ArrayФабричная функция директива, подлежащая инъекции. Смотрите руководство по директивам и API компилятора для получения дополнительной информации.
Возвращаемое значение
ng.$compileProviderТекущий объект для продолжения цепочки вызовов.
-
component(name, options);
Регистрация определения компонента в компиляторе. Это сокращение для регистрации специального типа директивы, представляющей собой автономный пользовательский компонент в вашем приложении. Такие компоненты всегда изолированы (т. е.
scope: {}) и всегда ограничены элементами (т. е.restrict: 'E').Определения компонентов очень просты и не требуют такой конфигурации, как определение общих директива. Определения компонентов обычно содержат только шаблон и контроллер, который его поддерживает.
Для упрощения определения компоненты навязывают лучшие практики, такие как использование
controllerAs,bindToController. Они всегда имеют изолированную область видимости и ограничены элементами.Вот несколько примеров, как обычно определяются компоненты:
var myMod = angular.module(...); myMod.component('myComp', { template: '<div>My name is {{$ctrl.name}}</div>', controller: function() { this.name = 'shahar'; } }); myMod.component('myComp', { template: '<div>My name is {{$ctrl.name}}</div>', bindings: {name: '@'} }); myMod.component('myComp', { templateUrl: 'views/my-comp.html', controller: 'MyCtrl', controllerAs: 'ctrl', bindings: {name: '@'} });Для получения дополнительных примеров и подробного руководства, обратитесь к руководству по компонентам.
Также см. $compileProvider.directive().Параметры
Параметр Тип Описание name stringObjectИмя компонента в верхнем регистре с маленькой буквы (например,
myCompчто будет соответствовать<my-comp>), или объект-карта компонентов, где ключи — имена, а значения — объекты определения компонентов.options ObjectОбъект определения компонента (упрощенный объект определения директивы), со следующими свойствами (все необязательные):
-
controller–{(string|function()=}– конструктор контроллера, который должен быть связан с только что созданной областью видимости, или имя зарегистрированного контроллера, если передано в виде строки. По умолчанию пустаяnoopфункция. -
controllerAs–{string=}– идентификатор имени для ссылки на контроллер в области видимости компонента. Если задано, контроллер будет опубликован в области видимости под именемcontrollerAs. Если не указано, по умолчанию$ctrl. -
template–{string=|function()=}– html-шаблон в виде строки или функция, возвращающая html-шаблон в виде строки, который должен использоваться в качестве содержимого этого компонента. По умолчанию пустая строка.Если
templateявляется функцией, то она вызывается со следующими локалями:-
$element- Текущий элемент -
$attrs- Текущий объект атрибутов элемента
-
-
templateUrl–{string=|function()=}– путь или функция, возвращающая путь к html-шаблону, который должен использоваться в качестве содержимого этого компонента.Если
templateUrlявляется функцией, то она вызывается со следующими локалями:-
$element- Текущий элемент -
$attrs- Текущий объект атрибутов элемента
-
-
bindings–{object=}– определяет связи между атрибутами DOM и свойствами компонента. Свойства компонента всегда связаны с контроллером компонента, а не с областью видимости. См.bindToController. -
transclude–{boolean=}– включает или отключает включение содержимого. Отключено по умолчанию. -
require-{Object<string, string>=}- требует контроллеров других директива и связывает их с контроллером этого компонента. Ключи объекта определяют имена свойств, под которыми требуемые контроллеры (значения объекта) будут связаны. См.require. -
$...– дополнительные свойства для добавления к фабрике директивы и конструктору контроллера. (Это используется маршрутизатором компонентов для аннотирования)
Возвращаемое значение
ng.$compileProviderсам провайдер компилятора для продолжения цепочки вызовов.
-
-
aHrefSanitizationTrustedUrlList([regexp]);
Получение или переопределение стандартного регулярного выражения, используемого для определения доверенных безопасных URL-адресов во время санитизации a[href].
Санитизация является мерой безопасности, призванной предотвратить атаки XSS через html-ссылки.
Любой URL-адрес, который собирается назначить a[href] с помощью привязки данных, сначала нормализуется и преобразуется в абсолютный URL-адрес. Затем URL-адрес сопоставляется с регулярным выражением
aHrefSanitizationTrustedUrlList. Если совпадение найдено, исходный URL записывается в DOM. В противном случае абсолютный URL-адрес префикс'unsafe:'и только потом записывается в DOM.Параметры
Параметр Тип Описание regexp (необязательно)RegExpНовое регулярное выражение для доверия URL.
Возвращаемое значение
RegExpng.$compileProviderТекущее регулярное выражение, если вызов без значения, или текущий объект для продолжения цепочки вызовов в противном случае.
-
aHrefSanitizationWhitelist();
Устарело: (с версии 1.8.1)Этот метод устарел. Используйте aHrefSanitizationTrustedUrlList вместо него.
-
imgSrcSanitizationTrustedUrlList([regexp]);
Получение или переопределение стандартного регулярного выражения, используемого для определения доверенных безопасных URL-адресов во время санитизации img[src].
Санитизация является мерой безопасности, призванной предотвратить атаки XSS через html-ссылки.
Любой URL-адрес, который собирается назначить img[src] с помощью привязки данных, сначала нормализуется и преобразуется в абсолютный URL-адрес. Затем URL-адрес сопоставляется с регулярным выражением
imgSrcSanitizationTrustedUrlList. Если совпадение найдено, исходный URL записывается в DOM. В противном случае абсолютный URL-адрес префикс'unsafe:'и только потом записывается в DOM.Параметры
Параметр Тип Описание regexp (необязательно)RegExpНовое регулярное выражение для доверия URL.
Возвращаемое значение
RegExpng.$compileProviderТекущее регулярное выражение, если вызов без значения, или текущий объект для продолжения цепочки вызовов в противном случае.
-
imgSrcSanitizationWhitelist();
Устарело: (с версии 1.8.1)Этот метод устарел. Используйте imgSrcSanitizationTrustedUrlList вместо него.
-
debugInfoEnabled([enabled]);
Вызовите этот метод, чтобы включить/выключить различные отладочные сведения во время выполнения в компиляторе, такие как добавление информации о привязке и ссылки на текущую область видимости к элементам DOM. Если включено, компилятор добавит следующее к элементам DOM, связанным с областью видимости:
-
ng-bindingкласс CSS -
ng-scopeиng-isolated-scopeклассы CSS -
$bindingсвойство данных, содержащее массив выражений привязки - Свойства данных, используемые методами
scope()/isolateScope()для возврата области видимости элемента. - Комментарии-заполнители будут содержать информацию о том, какая директива и привязка вызвали заполнитель. Например,
<!-- ngIf: shouldShow() -->.
В производственной среде рекомендуется отключить эту функцию для повышения производительности. Дополнительные сведения см. в разделе Отключение отладочных данных.
Значение по умолчанию — true.
Параметры
Параметр Тип Описание enabled (необязательно)booleanобновление состояния debugInfoEnabled, если предоставлено, в противном случае просто возвращает текущее состояние debugInfoEnabled
Возвращаемое значение
*текущее значение, если используется как getter, или сам объект (цепочка вызовов), если используется как setter
-
-
strictComponentBindingsEnabled([enabled]);
Вызовите этот метод, чтобы включить/отключить проверку строгих привязок компонентов. Если включено, компилятор будет проверять, что все привязки области видимости/контроллера для директивы / компонента, которые не установлены как необязательные с помощью
?, должны быть предоставлены при создании директивы. Если они не предоставлены, компилятор выбросит ошибку $compile:missingattr.Значение по умолчанию — false.
Параметры
Параметр Тип Описание enabled (необязательно)booleanобновить состояние strictComponentBindingsEnabled, если задано, в противном случае вернуть текущее состояние strictComponentBindingsEnabled.
Возвращаемое значение
*текущее значение, если используется как getter, или само значение (цепочки), если используется как setter
-
onChangesTtl(limit);
Устанавливает количество раз, когда
$onChangesхуки могут вызывать новые изменения, прежде чем отказаться и предположить, что модель нестабильна.Текущее значение по умолчанию — 10 итераций.
В сложных приложениях возможно, что зависимости между
$onChangesхуками и привязками приведут к нескольким итерациям вызовов этих хуков. Однако, если приложение требует более 10 итераций для стабилизации, необходимо изучить причину непрерывных изменений модели во время выполнения$onChangesхука.Увеличение TTL может повлиять на производительность, поэтому не следует изменять его без соответствующего обоснования.
Параметры
Параметр Тип Описание limit numberКоличество итераций
$onChangesхука.Возвращаемое значение
numberobjectтекущий предел (или
thisесли вызов как setter для цепочки) -
commentDirectivesEnabled(enabled);
Указывает компилятору, должны ли быть скомпилированы директивы в комментариях. Значение по умолчанию —
true.Вызов этой функции с false отключает компиляцию директив в комментариях для всего приложения. Это приводит к повышению производительности компиляции, так как компилятор не проверяет комментарии при поиске директив. Однако это следует использовать только в том случае, если вы уверены, что директивы в комментариях не используются в приложении (включая сторонние директивы).
Параметры
Параметр Тип Описание enabled booleanfalseесли компилятор может игнорировать директивы в комментарияхВозвращаемое значение
booleanobjectтекущее значение (или
thisесли вызов как setter для цепочки) -
cssClassDirectivesEnabled(enabled);
Указывает компилятору, должны ли быть скомпилированы директивы в классах элементов. Значение по умолчанию —
true.Вызов этой функции с false отключает компиляцию директив в классах элементов для всего приложения. Это приводит к повышению производительности компиляции, так как компилятор не проверяет классы элементов при поиске директив. Однако это следует использовать только в том случае, если вы уверены, что директивы в классах элементов не используются в приложении (включая сторонние директивы).
Параметры
Параметр Тип Описание enabled booleanfalseесли компилятор может игнорировать директивы в классах элементовВозвращаемое значение
booleanobjectтекущее значение (или
thisесли вызов как setter для цепочки) -
addPropertySecurityContext(elementName, propertyName, ctx);
Определяет контекст безопасности для свойств DOM, связанных с ng-prop-*.
Параметры
Параметр Тип Описание elementName stringИмя элемента или '*' для соответствия любому элементу.
propertyName stringИмя свойства DOM.
ctx stringКонтекст безопасности
$sce, в котором это значение безопасно для использования, например$sce.URLВозвращаемое значение
objectthisдля цепочки
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ng/provider/$compileProvider