从AngularJS控制器插入HTML到视图

从AngularJS控制器插入HTML到视图

是否可以在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>


翻阅古今
浏览 800回答 4
4回答

慕田峪7331174

您还可以创建如下过滤器:var&nbsp;app&nbsp;=&nbsp;angular.module("demoApp",&nbsp;['ngResource']);app.filter("trust",&nbsp;['$sce',&nbsp;function($sce)&nbsp;{ &nbsp;&nbsp;return&nbsp;function(htmlCode){ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$sce.trustAsHtml(htmlCode); &nbsp;&nbsp;}}]);然后在视野中<div&nbsp;ng-bind-html="trusted_html_variable&nbsp;|&nbsp;trust"></div>注:此筛选器信任传递给它的任何和所有html,如果将带有用户输入的变量传递给它,则可能会出现XSS漏洞。

收到一只叮咚

角JS显示标签中的HTML上述链接中提供的解决方案对我有效,这个线程上的任何选项都不起作用。对于任何使用AngularJS版本1.2.9查找相同内容的人这里有一份副本:好的,我找到了解决方案:联署材料:$scope.renderHtml&nbsp;=&nbsp;function(html_code){ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$sce.trustAsHtml(html_code);};HTML:<p&nbsp;ng-bind-html="renderHtml(value.button)"></p>编辑:这是布景:JS文件:angular.module('MyModule').controller('MyController',&nbsp;['$scope',&nbsp;'$http',&nbsp;'$sce', &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;($scope,&nbsp;$http,&nbsp;$sce)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$scope.renderHtml&nbsp;=&nbsp;function&nbsp;(htmlCode)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$sce.trustAsHtml(htmlCode); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$scope.body&nbsp;=&nbsp;'<div&nbsp;style="width:200px;&nbsp;height:200px;&nbsp;border:1px&nbsp;solid&nbsp;blue;"></div>';&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;}]);HTML文件:<div&nbsp;ng-controller="MyController"> &nbsp;&nbsp;&nbsp;&nbsp;<div&nbsp;ng-bind-html="renderHtml(body)"></div></div>
打开App,查看更多内容
随时随地看视频慕课网APP