【发布时间】:2012-03-12 00:30:30
【问题描述】:
是否可以在 AngularJS 控制器中创建一个 HTML 片段并将此 HTML 显示在视图中?
这是因为需要将不一致的 JSON blob 转换为 id: value 对的嵌套列表。因此 HTML 在控制器中创建,我现在正在寻找显示它。
我创建了一个模型属性,但如果不打印 HTML,则无法在视图中呈现它。
更新
问题似乎是由于将创建的 HTML 渲染为引号内的字符串而引起的。将尝试找到解决此问题的方法。
示例控制器:
var SomeController = function () {
this.customHtml = '<ul><li>render me please</li></ul>';
}
示例视图:
<div ng:bind="customHtml"></div>
给:
<div>
"<ul><li>render me please</li></ul>"
</div>
【问题讨论】:
-
另请参阅this question,询问是否可以让插入的 HTML 中的脚本运行。
-
是否可以将多个对象绑定到同一个 ng-bind?像```ng-bind="site.address_1 site.address_2 site.zip"
-
如果您的页面上有很多东西,您将不得不更改
function htmlSanitizer(html) {...的 angular.js (insanity) 的第 15046 行。 Angular 开发人员决定,您应该能够通过缓慢地逐个浏览所有页面隐藏元素来找到任何 html 绑定,以找到一个缺失的 html 片段。 !!!对这样的假设非常生气!!! -
抱歉,Luke 选择的答案可能不是完全正确的答案。正确答案可以在另一个问题here 中找到。基本上,“ng-bind-html-unsafe 仅将内容呈现为 HTML。它不会将 Angular 范围绑定到生成的 DOM。您必须为此目的使用 $compile 服务。”
-
ng-bind 删除所有内部 html。这不是过滤器的工作方式,当过滤器是唯一的值时没关系
标签: javascript angularjs escaping html-sanitizing