Улучшить эту документацию Посмотреть исходный код $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 stringИмя компонента в верхнем регистре (например,
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, привязанным к контексту:
-
класс CSS
ng-binding -
свойство данных
$binding, содержащее массив выражений привязки
В целях повышения производительности в продакшене вы можете отключить эту функцию. Дополнительная информация в отключении отладочных данных.
Значение по умолчанию — true.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновление состояния debugInfoEnabled, если предоставлено, в противном случае возвращает текущее состояние debugInfoEnabled
Возвращаемое значение
*текущее значение, если используется как getter, или сам объект (для цепочки вызовов), если используется как setter
-
класс CSS
-
preAssignBindingsEnabled([enabled]);
Вызовите этот метод, чтобы включить/выключить привязку контроллеров директив перед вызовом конструктора контроллера. Если включено (true), компилятор присваивает значение каждой привязки свойствам объекта контроллера перед вызовом конструктора этого объекта.
Если отключено (false), компилятор сначала вызывает конструктор, а затем присваивает привязки.
Значение по умолчанию — true в Angular 1.5.x, но переключится на false в Angular 1.6.x.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновляет состояние preAssignBindingsEnabled, если предоставлено, в противном случае возвращает текущее состояние preAssignBindingsEnabled
Возвращаемое значение
*текущее значение, если используется как getter, или сам объект (для цепочки вызовов), если используется как setter
-
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если вызов используется для цепочки)
© 2010–2017 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.5.11/docs/api/ng/provider/$compileProvider