带有HTML元素的三元语句

时间:2018-06-08 08:28:00

标签: angularjs

我正在尝试创建一个也使用HTML元素的三元语句:

{{vm.showDetails ? <span>asd</span> : <span>red</span> }}

但浏览器输出是:

{{vm.showDetails ? 'asd' : 'red'}}

如果我删除标签然后三元语句工作正常,是不是可以在三元语句中使用HTML元素?

1 个答案:

答案 0 :(得分:6)

要渲染此类HTML元素,在某些情况下,您需要一个带$compile的指令(因为它们负责DOM操作),或者使用来自{{1的hack - ng-bind-html模块。

以下是一个例子:

ngSanitize
var app = angular.module('myApp', ["ngSanitize"]);
app.controller('myCtrl', function($scope) {
  var vm = this;
  vm.showDetails = true;
});

/* a useful filter for other unsafe HTML elements */
app.filter('trustAsHtml', function($sce) {
  return $sce.trustAsHtml;
});