Улучшить эту документацию Просмотреть исходный код $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Имя компонента в формате camelCase (например,
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сам поставщик компиляции для цепочки вызовов функций.
-
-
aHrefSanitizationWhitelist([regexp]);
Получает или перезаписывает регулярное выражение по умолчанию, используемое для белого списка безопасных URL-адресов во время санитизации a[href].
Санитизация — это мера безопасности, направленная на предотвращение атак XSS через HTML-ссылки.
Любой URL-адрес, который должен быть назначен a[href] через привязку данных, сначала нормализуется и преобразуется в абсолютный URL-адрес. После этого URL-адрес проверяется на соответствие регулярному выражению
aHrefSanitizationWhitelist. Если совпадение найдено, исходный URL-адрес записывается в DOM. В противном случае абсолютный URL-адрес предваряется строкой'unsafe:'и только после этого записывается в DOM.Параметры
Параметр Тип Подробности regexp (необязательно)RegExpНовое регулярное выражение для белого списка URL-адресов.
Возвращаемое значение
RegExpng.$compileProviderТекущее регулярное выражение, если вызов без значения, или сам объект для цепочки вызовов в противном случае.
-
imgSrcSanitizationWhitelist([regexp]);
Получает или перезаписывает регулярное выражение по умолчанию, используемое для белого списка безопасных URL-адресов во время санитизации img[src].
Санитизация — это мера безопасности, направленная на предотвращение атак XSS через HTML-ссылки.
Любой URL-адрес, который должен быть назначен img[src] через привязку данных, сначала нормализуется и преобразуется в абсолютный URL-адрес. После этого URL-адрес проверяется на соответствие регулярному выражению
imgSrcSanitizationWhitelist. Если совпадение найдено, исходный URL-адрес записывается в DOM. В противном случае абсолютный URL-адрес предваряется строкой'unsafe:'и только после этого записывается в DOM.Параметры
Параметр Тип Подробности regexp (необязательно)RegExpНовое регулярное выражение для белого списка URL-адресов.
Возвращаемое значение
RegExpng.$compileProviderТекущее регулярное выражение, если вызов без значения, или сам объект для цепочки вызовов в противном случае.
-
debugInfoEnabled([enabled]);
Вызовите этот метод, чтобы включить/отключить различные отладочные данные во время выполнения в компиляторе, такие как добавление информации о привязке и ссылки на текущий контекст к элементам DOM. Если включено, компилятор добавит следующее к элементам DOM, которые были привязаны к контексту:
-
ng-bindingкласс CSS -
ng-scopeиng-isolated-scopeклассы CSS -
$bindingсвойство данных, содержащее массив выражений привязки - Свойства данных, используемые методами
scope()/isolateScope()для возврата контекста элемента. - Комментарии-заглушки будут содержать информацию о том, какая директива и привязка вызвали заглушку. Например,
<!-- ngIf: shouldShow() -->.
Возможно, вы захотите отключить это в продакшене для значительного повышения производительности. Дополнительные сведения см. в разделе Отключение отладочных данных.
Значение по умолчанию — true.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновить состояние debugInfoEnabled, если указано, иначе просто вернуть текущее состояние debugInfoEnabled
Возвращаемое значение
*текущее значение, если используется как геттер, или сам объект (цепочка) в случае использования в качестве сеттера
-
-
strictComponentBindingsEnabled([enabled]);
Вызовите этот метод, чтобы включить/отключить проверку строгих привязок компонентов. Если включено, компилятор будет проверять, что все привязки контекста/контроллера директивы / компонента, которые не заданы как необязательные с помощью
?, должны быть предоставлены при создании директивы. Если не предоставлены, компилятор выбросит ошибку $compile:missingattr.Значение по умолчанию — false.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновить состояние strictComponentBindingsEnabled, если указано, иначе вернуть текущее состояние strictComponentBindingsEnabled.
Возвращаемое значение
*текущее значение, если используется как геттер, или сам объект (цепочка) в случае использования в качестве сеттера
-
onChangesTtl(limit);
Устанавливает количество раз, которое
$onChangesкрючки могут запускать новые изменения, прежде чем сдаться и предположить, что модель нестабильна.Текущее значение по умолчанию составляет 10 итераций.
В сложных приложениях возможны зависимости между
$onChangesкрючками и связями, что приведет к нескольким итерациям вызовов этих крючков. Однако, если приложению требуется более 10 итераций для стабилизации, необходимо выяснить, что вызывает непрерывное изменение модели во время выполнения$onChangesкрючка.Увеличение TTL может повлиять на производительность, поэтому его следует изменять только по обоснованным причинам.
Параметры
Параметр Тип Подробности limit numberКоличество
$onChangesитераций крючка.Возвращаемое значение
numberobjectтекущее ограничение (или
thisесли вызывается как сеттер для цепочки вызовов) -
commentDirectivesEnabled(enabled);
Указывает компилятору, следует ли компилировать директивы в комментариях. По умолчанию
true.Вызов этой функции со значением false отключает компиляцию директив в комментариях для всего приложения. Это приводит к увеличению производительности компиляции, так как компилятор не должен проверять комментарии при поиске директив. Однако это следует использовать только в том случае, если вы уверены, что в приложении (включая любые директивы сторонних разработчиков) не используются директивы в комментариях.
Параметры
Параметр Тип Подробности enabled booleanfalseесли компилятор может игнорировать директивы в комментарияхВозвращаемое значение
booleanobjectтекущее значение (или
thisесли вызывается как сеттер для цепочки вызовов) -
cssClassDirectivesEnabled(enabled);
Указывает компилятору, следует ли компилировать директивы в классах элементов. По умолчанию
true.Вызов этой функции со значением false отключает компиляцию директив в классах элементов для всего приложения. Это приводит к увеличению производительности компиляции, так как компилятор не должен проверять классы элементов при поиске директив. Однако это следует использовать только в том случае, если вы уверены, что в приложении (включая любые директивы сторонних разработчиков) не используются директивы в классах элементов.
Параметры
Параметр Тип Подробности enabled booleanfalseесли компилятор может игнорировать директивы в классах элементовВозвращаемое значение
booleanobjectтекущее значение (или
thisесли вызывается как сеттер для цепочки вызовов) -
addPropertySecurityContext(elementName, propertyName, ctx);
Определяет контекст безопасности для свойств DOM, связанных с ng-prop-*.
Параметры
Параметр Тип Подробности elementName stringИмя элемента или '*' для соответствия любому элементу.
propertyName stringИмя свойства DOM.
ctx stringКонтекст безопасности
$sce, в котором это значение безопасно для использования, например,$sce.URLВозвращаемое значение
objectthisдля цепочки вызовов
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.7.8/docs/api/ng/provider/$compileProvider