【问题标题】:Prevent Angular from escaping HTML防止 Angular 转义 HTML
【发布时间】:2014-01-13 17:57:04
【问题描述】:

当 Angular 插入标记并将作用域变量插入{{post}} 样式模板时,它会转义 HTML。

我正在构建的应用程序需要用户创建模板,使用花括号表示法插入变量名称,我不想通过为某些变量引入指令和为其他变量引入大括号来使其过于复杂。

有没有办法通过 curly 模板呈现非转义的 HTML?

我唯一的选择是在用户尝试渲染{{post}} 时渲染一个代理元素,然后我可以使用 jQLite 抓取它并手动插入 HTML,但这一切都很混乱。有什么想法吗?

【问题讨论】:

  • 我不认为有(对于什么那是值得);但是您可能会在处理模板时将{{post}} 替换为<span ng-bind-html="post"></span>。确保不要对injection attacks 敞开心扉,尽管使用ng-bind-html-unsafe 会带来更大的风险,因为ng-bind-html 仍然会进行一些消毒。

标签: javascript angularjs


【解决方案1】:

你想看看ngBindHtml

“要利用此功能,请确保 $sanitize 可用,例如,将 ngSanitize 包含在模块的依赖项中(而不是核心 Angular。)”

【讨论】:

  • 它也会覆盖元素内的所有内容。我可以在哪里使用过滤器,Hi, today you are feeling {{ ':happy_face:' | emoji }}
猜你喜欢
  • 2021-09-10
  • 2012-02-13
  • 2011-12-08
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多