我正在尝试创建一个也使用HTML元素的三元语句:
{{vm.showDetails ? <span>asd</span> : <span>red</span> }}
但浏览器输出是:
{{vm.showDetails ? 'asd' : 'red'}}
如果我删除标签然后三元语句工作正常,是不是可以在三元语句中使用HTML元素?
答案 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;
});