ng-bind-html不会连接一次不同的东西(甚至不用$ sce.trustAsHtml())

时间:2017-07-18 15:10:20

标签: javascript html angularjs angular-ui-bootstrap ui-select

我正在尝试使用ng-bind-html将一些不同的html代码连接到我的视图。

我已添加ngSanitize

首先,我ng-for

使用ui-select-choices
<ui-select-choices repeat="test in dataTest>

。我想将test.name绑定到一些Html

<small> ( {{ TEST_BTN | translate }}) </small>

Test_BTN 正用于翻译目的,因此我不能将其从代码中删除。

当我尝试在ng-bind-html中使用它们时,将不显示任何内容

当我尝试在ng-bind中使用它们时,将显示html代码。

当我尝试单独使用ng-bindng-bind-html时,ng-bind-html html将不会显示。

我想怎么解决这个问题?

编辑:我想在ng-if

的新div中显示结果

类似于:<div data-ng-if="test.isSomething" ng-bind="test.name" ng-bind-html="' <small>({{'BTN_ADD' | translate}})</small>'" ></div>(不显示ng-bind-html部分)

编辑2:

我从{{ }}删除了data-ng-bind-html,并在我的控制器中明确使用了$translate服务。

它奏效了。

1 个答案:

答案 0 :(得分:0)

您不能在同一元素上使用ng-bindng-bind-html,也不能在其中任何一个元素中使用{{}}。没有必要在<small>内连接ng-bind-html标记,它应该在模板本身中。你的ng-bind-html子句中有一些语法错误嵌套引号问题。

我从您的描述中不清楚您实际打算使用哪test.nameTEST_BTNBTN_ADD;我假设你真的想要test.name,但如果其中一个变量包含你想要嵌入的HTML,只需用它的名字代替test.name:

<div ng-if="test.isSomething">
  <small ng-bind-html="test.name | translate"></small>
</div>