为了账号安全,请及时绑定邮箱和手机立即绑定

从AngularJS控制器插入HTML到视图

从AngularJS控制器插入HTML到视图

翻阅古今 2019-05-31 12:47:51
从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>
查看完整描述

4 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

您还可以创建如下过滤器:

var app = angular.module("demoApp", ['ngResource']);app.filter("trust", ['$sce', function($sce) {
  return function(htmlCode){
    return $sce.trustAsHtml(htmlCode);
  }}]);

然后在视野中

<div ng-bind-html="trusted_html_variable | trust"></div>

:此筛选器信任传递给它的任何和所有html,如果将带有用户输入的变量传递给它,则可能会出现XSS漏洞。


查看完整回答
反对 回复 2019-05-31
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

角JS显示标签中的HTML

上述链接中提供的解决方案对我有效,这个线程上的任何选项都不起作用。对于任何使用AngularJS版本1.2.9查找相同内容的人

这里有一份副本:

好的,我找到了解决方案:

联署材料:

$scope.renderHtml = function(html_code){
    return $sce.trustAsHtml(html_code);};

HTML:

<p ng-bind-html="renderHtml(value.button)"></p>

编辑:

这是布景:

JS文件:

angular.module('MyModule').controller('MyController', ['$scope', '$http', '$sce',
    function ($scope, $http, $sce) {
        $scope.renderHtml = function (htmlCode) {
            return $sce.trustAsHtml(htmlCode);
        };

        $scope.body = '<div style="width:200px; height:200px; border:1px solid blue;"></div>'; 

    }]);

HTML文件:

<div ng-controller="MyController">
    <div ng-bind-html="renderHtml(body)"></div></div>


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 799 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信