在我的Web应用程序中,我给了一个用angular $ sce包装的对象。在这个对象中,每个属性都有一个特殊属性$$ unwrappedTrusted但它并没有真正给我对象值。我怎么能得到信任对象属性的值?
答案 0 :(得分:21)
正如@rrhrg所说,属性始于$$被视为私有且不安全使用。更好地使用valueOf $ sce服务的方法。
var trustedResource = $sce.trustAsResourceUrl("www.abcd.com/folder/image.png");
$sce.valueOf(trustedResource); // "www.abcd.com/folder/image.png"
答案 1 :(得分:7)
您可以使用getTrustedHtml()函数。这从$$ unwrapTrustedValue获取html字符串值。
vm.user.bio = $sce.getTrustedHtml(vm.user.bio);
您可能还需要加入ngSanitize。
本文中有关于此主题的更多答案: Unit testing the output of $sce.trustAsHtml in Angular
答案 2 :(得分:1)
如果我理解你的问题,你想打开(或使用?)由angular的服务$sec
包裹的值。
要在html文档中使用此类值,您可以使用指令ng-bind-html
。
<div ng-bind-html="myWrappedValue"></div>
要打开此类值,您可以使用函数$$unwrapTrustedValue()
。
$sce.trustAsHtml('©').$$unwrapTrustedValue() === '©'
请注意以两个美元符号($$)开头的属性被视为私有,并且 NOT 应该被访问!
答案 3 :(得分:0)
我通过调用toString()函数得到每个属性的值,但我没有找到任何方法来帮助我找到对象本身。