AngularJS 能不能不用ng-bind-html绑定显示HTML

我知道可以通过ng-bind-html来实现,但现在的问题是项目里有限制不能这样用,只能使用{{Html}}这种方式,哪位大神知道"{{}}"要怎么样才能显示HTML,不... 我知道可以通过ng-bind-html来实现,但现在的问题是项目里有限制不能这样用,只能使用 {{Html}} 这种方式,哪位大神知道 "{{}}" 要怎么样才能显示HTML,不被编码。 展开
 我来答
huibo865686
2015-01-14 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:261万
展开全部

用{{}}是一定没法输出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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式