如何在AngularJS中将文本呈现为HTML

4

我有一个作用域中的变量,其中包含一些HTML内容。我希望在网页上将其呈现为HTML,但在我的情况下,它显示为完整文本。有人能帮我吗?

这是我的代码:

//contoller.js

$scope.message = '<b><i>result has been saved successfully.</i></b>';

//demo.html

<p ng-bind="message"></p>

2
为什么需要在控制器中使用HTML字符串而不是模板呢? - charlietfl
因为我想在用户点击保存按钮时显示一个成功的消息,并且我希望这个消息看起来很好。 - Surjeet Bhadauriya
所以在模板中使其看起来好看并传入文本...这是正常的方法。 - charlietfl
我不在控制器中使用它。如果我想用呢? - Surjeet Bhadauriya
在控制器中这样做没有意义。这样做没有分离关注点,并且需要更复杂的过程来注入它。这就是模板的作用。 - charlietfl
是的兄弟,你是对的。实际上我正在做一个项目,现在正处于学习阶段。感谢你的指导。 - Surjeet Bhadauriya
3个回答

14

您需要将$sce服务注入到您的controllerDirective等中,并像这样使用$sce服务

$scope.Message = $sce.trustAsHtml("<b><i>result has been saved successfully.</i></b>");

在你的 HTML 页面中绑定它,例如:

<p ng-bind-html = "Message"></p>

3
您需要使用$sce服务来保护您的内容,然后使用ng-bind-html指令。相关文档请参考此处
编辑: 您可以在此处找到使用sce.trustAsHtml的方法。

不用谢!希望您会喜欢使用Angular的体验! - OctoD

1
<p ng-bind-html="message"></p>

ng-bind-html需要更多的解释吗?这应该可以解决问题。 - Parv Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接