Улучшить эту документацию Просмотреть исходный код $sceDelegate
- $sceDelegateProvider
- сервис в модуле ng
Обзор
$sceDelegate — это сервис, используемый сервисом $sce для предоставления AngularJS сервисов строгой контекстной экранировки (SCE).
Для обзора этого сервиса и функциональности, которую он предоставляет в AngularJS, см. главную страницу для SCE. Текущая страница предназначена для разработчиков, которым нужно изменить работу SCE в своём приложении, что обычно не требуется.
Обычно вы настраиваете или переопределяете $sceDelegate, а не $sce сервис, чтобы настроить способ работы строгой контекстной экранировки в AngularJS. Это потому, что, хотя $sce предоставляет множество сокращённых методов и т. д., вам действительно нужно переопределить только 3 основных функции (trustAs, getTrusted и valueOf), чтобы изменить способ работы, так как $sce делегирует эти операции $sceDelegate.
Для настройки этого сервиса обратитесь к $sceDelegateProvider.
Доступный по умолчанию экземпляр $sceDelegate должен работать без проблем. Хотя вы можете полностью переопределить его, чтобы изменить поведение $sce, в типичном случае вы настраиваете $sceDelegateProvider вместо этого, установив свои собственные доверенные и запрещённые списки ресурсов для доверия к URL-адресам, используемым для загрузки ресурсов AngularJS, таких как шаблоны. Обратитесь к $sceDelegateProvider.trustedResourceUrlList и $sceDelegateProvider.bannedResourceUrlList.
Использование
$sceDelegate();
Методы
-
trustAs(type, value);
Возвращает доверенное представление параметра для указанного контекста. Это доверенное значение в дальнейшем будет использоваться напрямую, без проверки безопасности, привязки или директивами, требующими такого контекста безопасности. Например, помечая строку как доверенную для контекста
$sce.HTML, вы полностью обойдёте потенциальный$sanitizeвызов в соответствующих$sce.HTMLпривязках или директивах, таких какng-bind-html. Обратите внимание, что в большинстве случаев вам не нужно вызывать эту функцию: если у вас загружен санитайзер, передача самого значения отобразит весь HTML, который не представляет угрозы безопасности.См. getTrusted для функции, которая будет использовать эти доверенные значения, и $sce для общей информации о строгой контекстной экранировке.
Параметры
Параметр Тип Описание type stringКонтекст, в котором это значение безопасно для использования, например,
$sce.URL,$sce.RESOURCE_URL,$sce.HTML,$sce.JSили$sce.CSS.value *Значение, которое должно считаться доверенным.
Возвращаемое значение
*Доверенное представление значения, которое может быть использовано в данном контексте.
-
valueOf(value);
Если переданный параметр был возвращён предыдущим вызовом
$sceDelegate.trustAs, возвращает значение, которое было передано в$sceDelegate.trustAs.Если переданный параметр не является значением, возвращённым
$sceDelegate.trustAs, он должен быть возвращён как есть.Параметры
Параметр Тип Описание value *Результат предыдущего вызова
$sceDelegate.trustAsили что-либо другое.Возвращаемое значение
*Исходное
value, переданное$sceDelegate.trustAs, еслиvalueявляется результатом такого вызова. В противном случае, возвращаетvalueбез изменений. -
getTrusted(type, maybeTrusted);
Учитывая объект и контекст безопасности, для присвоения ему возвращает значение, безопасное для использования в этом контексте, которое было представлено параметром. Для этого функция либо распаковывает безопасный тип, который ей был передан (например, результат
$sceDelegate.trustAs), либо пытается отформатировать переданное значение, в зависимости от контекста и наличия санитайзера.Контексты, которые могут быть отформатированы, — это $sce.MEDIA_URL, $sce.URL и $sce.HTML. Первые два доступны по умолчанию, а третий зависит от сервиса
$sanitize(который может быть загружен через модульngSanitize). Кроме того, для контекста $sce.RESOURCE_URL может быть принята обычная строка, если политика ресурса URL, определённая$sceDelegateProvider.trustedResourceUrlListи$sceDelegateProvider.bannedResourceUrlList, принимает этот ресурс.Функция выбросит исключение, если безопасный тип не подходит для этого контекста или если значение не может быть принято в контексте (что может быть вызвано отсутствием санитайзера или нераспознанием значения как безопасного).
Отключение автоматической экранировки чрезвычайно опасно; это обычно создаёт уязвимость межсайтового скриптинга (XSS) в вашем приложении.Параметры
Параметр Тип Описание type stringКонтекст, в котором это значение будет использоваться (например,
$sce.HTML).maybeTrusted *Результат предыдущего вызова
$sceDelegate.trustAsили что-либо ещё (что не будет считаться доверенным).Возвращаемое значение
*Версия значения, безопасная для использования в заданном контексте, или выброс исключения, если это невозможно.
© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
https://code.angularjs.org/1.8.2/docs/api/ng/service/$sceDelegate