В моем веб-приложении я дал объект, который обернут с помощью angular $sce.In в этом объекте каждое свойство имеет специальное свойство $$ unwrappedTrusted, но на самом деле оно не дает мне значение объекта. Как мне можно доверять значение свойства объекта?
Как получить развернутое значение объекта, который завернут с $sce?
Ответ 1
Поскольку @rrhrg говорит, что свойства начинаются с $$, считаются частными и небезопасными в использовании. Лучше использовать valueOf метод $sce service.
var trustedResource = $sce.trustAsResourceUrl("www.abcd.com/folder/image.png");
$sce.valueOf(trustedResource); // "www.abcd.com/folder/image.png"
Ответ 2
Вы можете использовать функцию getTrustedHtml(). Это получает значение строки html от $$ unwrapTrustedValue.
vm.user.bio = $sce.getTrustedHtml(vm.user.bio);
Вам также может потребоваться включить ngSanitize.
В этой статье есть больше ответов на эту тему: Модуль тестирует вывод $sce.trustAsHtml в Angular
Ответ 3
Я получаю значение каждого свойства, вызывая функцию toString(), но я не нашел никакого метода, который помог бы мне найти объект.
Ответ 4
Если я правильно понял ваш вопрос, вы хотели бы развернуть (или использовать?) значение, обернутое службой angular $sec
.
Чтобы использовать такое значение в вашем html-документе, вы можете использовать директиву ng-bind-html
.
<div ng-bind-html="myWrappedValue"></div>
Чтобы развернуть такое значение, вы можете использовать функцию $$unwrapTrustedValue()
.
$sce.trustAsHtml('©').$$unwrapTrustedValue() === '©'
Обратите внимание на, что свойства, начинающиеся с двух знаков доллара ($$), считаются закрытыми и должны иметь доступ к NOT!
См. также http://jsfiddle.net/rrhrg/9vzckoj8/