是否可以在Angular控制器中创建一个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>
对于Angular 1.x,在HTML中使用ng-bind-html:
<div ng-bind-html="thisCanBeusedInsideNgBindHtml"></div>
此时,您将尝试在安全上下文错误中使用不安全值,因此您需要使用ngSanitize或$sce来解决此问题。
$ sce
在控制器中使用$ sce.trustAsHtml()来转换html字符串。
$scope.thisCanBeusedInsideNgBindHtml = $sce.trustAsHtml(someHtmlVar);
ngSanitize
有2个步骤:
>包括angular-sanitize.min.js资源,例如:
>在js文件(控制器或通常是app.js)中,包括ngSanitize,例如:angular.module(‘myApp’,[‘myApp.filters’,’myApp.services’,’myApp.directives’,’ngSanitize’])