AngularJS 能不能不用ng-bind-html绑定显示HTML
我知道可以通过ng-bind-html来实现,但现在的问题是项目里有限制不能这样用,只能使用{{Html}}这种方式,哪位大神知道"{{}}"要怎么样才能显示HTML,不...
我知道可以通过ng-bind-html来实现,但现在的问题是项目里有限制不能这样用,只能使用 {{Html}} 这种方式,哪位大神知道 "{{}}" 要怎么样才能显示HTML,不被编码。
展开
1个回答
展开全部
用{{}}是一定没法输出html的
不知道你项目里是怎么限制的不能使用 ng-bind-html
那你试试自己写个指令来实现一下好了
var app = angular.model('app' , []);
app.directive('stringHtml' , function(){
return function(scope , el , attr){
if(attr.stringHtml){
scope.$watch(attr.stringHtml , function(html){
el.html(html || '');//更新html内容
});
}
};
});
app.controller('TestCtrl' , function($scope){
$scope.string = '<button type="button">测试html按钮</button>';
});
html:
<div ng-controller="TestCtrl">
<span string-html="string"></span>
</div>
更多追问追答
追问
情况差不多是这样,在对像的属性里面或文章片断里面,用户可以输入类似{{Sth.Any}},然后会在前端换成某个值,然而这个值,可能会带有HTML标签。这样用户输入的整个内容中还有其它内容,就没有办法使用 ng-bind-html。
追答
那这个你就要在这个html字符串到 ng-bind-html 这个指令之前就把 {{xx}} 用户输入的这些值给替换完成啊
如果没法做到这个的话,你也可以加上这个指令
ng-non-bindable
里面的{{}}ng就会忽略它,不再编译
资料这里 http://www.ngnice.com/docs/api/ng/directive/ngNonBindable
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询