Улучшить эту документацию Просмотреть исходный код $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сам провайдер компиляции для цепочки вызовов.
-
-
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-bindingCSS-класс -
ng-scopeиng-isolated-scopeCSS-классы -
$bindingсвойство данных, содержащее массив выражений привязки - Свойства данных, используемые методами
scope()/isolateScope()для возвращения области видимости элемента. - Комментарии-заполнители будут содержать информацию о том, какая директива и привязка вызвали заполнитель. Например,
<!-- ngIf: shouldShow() -->.
В производственной среде может быть целесообразно отключить эту функцию для значительного повышения производительности. См. Отключение отладочных данных для получения дополнительной информации.
Значение по умолчанию — true.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновляет состояние debugInfoEnabled, если предоставлено, в противном случае просто возвращает текущее состояние debugInfoEnabled
Возвращаемое значение
*текущее значение, если используется как getter, или сам объект (цепочка вызовов), если используется как setter
-
-
preAssignBindingsEnabled([enabled]);
Вызов этого метода для включения/отключения присвоения привязок контроллерам директив до вызова конструктора контроллера. Если включено (true), компилятор присваивает значение каждой привязки свойствам объекта контроллера перед вызовом конструктора этого объекта.
Если отключено (false), компилятор сначала вызывает конструктор, а затем присваивает привязки.
Значение по умолчанию — false.
Устарело: (с версии 1.6.0) (будет удалено в версии 1.7.0)Этот метод и возможность присваивать привязки перед вызовом конструктора контроллера будут удалены в версии 1.7.0.
Параметры
Параметр Тип Подробности enabled (необязательно)booleanобновляет состояние preAssignBindingsEnabled, если предоставлено, в противном случае просто возвращает текущее состояние preAssignBindingsEnabled
Возвращаемое значение
*текущее значение, если используется как getter, или сам объект (цепочка вызовов), если используется как setter
-
strictComponentBindingsEnabled([enabled]);
Вызовите этот метод, чтобы включить/выключить проверку строгих привязок компонентов. Если включено, компилятор будет проверять, что для всех привязок компонента, которые не заданы как необязательные с помощью
?, должен быть предоставлен атрибут в HTML-теге компонента.Значение по умолчанию — 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 для цепочки)
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://code.angularjs.org/1.6.9/docs/api/ng/provider/$compileProvider