如何获取包含$ sce的对象的解包值?

ali*_*ali 18 javascript angularjs

在我的Web应用程序中,我给了一个用angular $ sce包装的对象.在这个对象中,每个属性都有一个特殊属性$$ unwrappedTrusted但它并没有真正给我对象值.如何获得对象属性的可信值?

Nin*_*nja 21

正如@rrhrg所说,属性始于$$被视为私有且不安全使用.更好地使用$ sce服务的valueOf方法.

var trustedResource = $sce.trustAsResourceUrl("www.abcd.com/folder/image.png");
$sce.valueOf(trustedResource); // "www.abcd.com/folder/image.png"
Run Code Online (Sandbox Code Playgroud)

http://jsbin.com/morixekuxi/edit?html,js,console


Jam*_*mes 7

您可以使用getTrustedHtml()函数.这从$$ unwrapTrustedValue获取html字符串值.

vm.user.bio = $sce.getTrustedHtml(vm.user.bio);
Run Code Online (Sandbox Code Playgroud)

您可能还需要包含ngSanitize.

在这篇文章中有关于这个主题的更多答案: 单元测试Angular中$ sce.trustAsHtml的输出


ali*_*ali 1

我通过调用 toString() 函数获取每个属性的值,但我没有找到任何可以帮助我找到对象本身的方法。