将ng-bind-html与URL结合使用

时间:2016-05-13 11:44:49

标签: angularjs

目前我有一个ng-bind-html的div,用于绑定我传入的HTML

<div ng-bind-html="renderHtml(message.text)" />

目前message.text是HTML。我希望传入一个URL并将该HTML插入div

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:0)

就个人而言,我会制定一个自定义指令来做这样的事情。

我会将url作为属性参数发送,使指令使用$ http.get()获取html,并在加载时将其附加到html。

答案 1 :(得分:-1)

您可以将来源添加为:

<div ng-bind-html="URl | safeHtml"></div>

需要添加$sce以便使用此指令安全地绑定url:

app.filter('safeHtml', function ($sce) {
    return function (val) {
        return $sce.trustAsHtml(val);
    };
});

修改

不是直接绑定网址,而是将其嵌入iframe并将其用于安全绑定:

$scope.URL = <iframe ng-src="url"></iframe>

答案 2 :(得分:-1)

我会这样做:

<input ng-model="myUrl"/>
<div id="myDiv" />

然后为myUrl添加一个监视,并在每次更改时发出请求:

$scope.$watch('message.text', function(newValue) {
    $.ajax({ url: 'newValue', success: function(data) { 
        $("#myDiv").html(data);
    }});
}