【问题标题】:angular ng-bind-html ng-bind more angular code?angular ng-bind-html ng-bind 更多 angular 代码?
【发布时间】:2016-08-13 19:32:42
【问题描述】:

你好,一个简单的 Angular 问题,我有:

<div class="_minimal_size margin_10_middle">
    <div class="_50 espaciado_0_20">
        <p ng-bind-html="eirana_knows.feedback"></p>
    </div>
    <br class="clear"/>
</div>

如果我绑定 HTML 信息,工作得很好。现在,我想做的是绑定,实际上是角码,例如 {{2+2}} 举个例子。

那么,有没有办法让这种绑定成为可能呢?如果是这样,我正在寻找一种简单的方法,例如修改这一行:

        <p ng-bind-html="eirana_knows.feedback"></p>

对于允许我绑定角度和处理它的东西。

亲切的问候;克里斯

【问题讨论】:

  • 没有得到你想要的,但是通过示例,&lt;p ng-bind="2 + 2"&gt;&lt;/p&gt; 工作正常
  • 当来自 ng-bind 的信息来自一个函数时,比方说,从数据库中抓取,它不会显示相同的行为。它实际上会打印“2+2”而不是“4”

标签: javascript angularjs ng-bind-html ng-bind


【解决方案1】:

如果您尝试注入 Angular 代码,您将需要使用 $compile 服务:

var newHTML = angular.element(eirana_knows.feedback); //assuming this html
$compile(newHTML)($scope); //you would need to do this in a directive or controller where you have a scope
//then append the compiled html
someElement.append(newHTML);

一旦你编译并注入 HTML,它就会处理该 HTML 中使用的任何角度指令

【讨论】:

  • 以这种方式显示,但它没有被执行。我正在从数据库中加载带有“”的变量 eirana_knows.feedback。测试......但到目前为止还没有运气。
  • 您将无法以这种方式注入 javascript,因为注入和运行任意 javascript 会带来巨大的安全风险。
  • 我确定有办法,而且我没有看到任何安全问题,代码来自我的数据库本身,如果你环顾四周,有几家大公司也在这样做。
  • 仅使用 Angular 是无法做到的。您需要使用 jQuery 进行一些跳跃。请参阅这篇 SO 文章:stackoverflow.com/questions/17460982/…
  • 哈哈,是的,我看过了,但这不是很可笑吗?我使用 Angular 是因为我不想使用 Jquery,然后我最终不得不使用 Jquery 来处理 Angular 响应......哈哈
猜你喜欢
  • 2015-02-11
  • 2015-05-06
  • 2013-01-21
  • 2015-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多