我使用Salesforce作为后端,我的用户可以获得一些通知,其中可能包含带有某个链接的标记。这就是说我在控制器中使用了$ sce来执行这样的功能:
vm.to_trusted = to_trusted;
function to_trusted(html_code) {
return $sce.trustAsHtml(html_code);
}
在前端,我正在使用它:
<p ng-bind-html="vm.to_trusted(message.body)"></p>
返回的message.body的一个例子是
<a href="/#/app/profile">Click Here to Fill out your Profile</a>. It will allow you
在localhost上,这显示了链接显示而不是标记。在Salesforce上,情况并非如此,而是显示上面的内容。关于为什么这不起作用的任何想法?
更新:
是的我确实包含了ngSanitize:)
答案 0 :(得分:2)
Salesforce @dispatch
请求以奇怪的方式序列化文本。
如果Salesforce字符串的内容为:'<a href="">Things</a>'
,您将在Angular中看到您已收到:<a href="$quot;>Things<a>
我找到的解决方案是,在您的控制器中:
function to_trusted(html_code) {
// Cause the <g; etc become '<'
return $('<textarea />').html(html_code).text();
}
因为Salesforce。