是否可以在AngularJS控制器中创建HTML片段,并在视图中显示此HTML
这是因为需要将不一致的JSON blob转换为id:value
对的嵌套列表。因此,在控制器中创建了HTML,我现在希望显示它
我已经创建了一个模型属性,但是如果不打印HTML,就无法在视图中呈现该属性
更新
问题似乎源于将创建的HTML以带引号的字符串形式呈现。将试图找到一种解决方法
控制器示例:
var SomeController=函数(){
this.customHtml='<;ul>;<;li>;请给我<;/li>;<;/ul>;';
}
示例视图:
<;div ng:bind=“customHtml”></部门>;
给出:
<;部门>;
“<;ul>;<;li>;请给我<;/li>;<;/ul>;”
</部门>;
对于Angular 1.x,在html中使用ng bind html
:
<;div ng bind html=";这可以在SidengBindHTML中使用&燃气轮机</部门>;
此时,您将得到一个错误,试图在安全上下文中使用不安全值
因此您需要使用ngSanitize或$sce来解决该问题
$sce
在控制器中使用$sce.trustAsHtml()
转换html字符串
$scope.this可用于sidengBindHTML=$sce.trustAsHtml(someHtmlVar);
消毒
有两个步骤:
-
包括angular-sanitize.min.js资源,即:
<;脚本src=";lib/angular/angular sanitize.min.js“&燃气轮机</脚本>;
-
在js文件(controller或通常为app.js)中,包括ngSanitize,即:
angular.module('myApp',['myApp.filters','myApp.services',', 'myApp.directives','ngSanitize'])