【发布时间】:2014-06-23 22:23:08
【问题描述】:
我对 AngularJS 还很陌生,我试图让我的 ng-repeat 在找到 null 时设置一个默认值。我尝试了在另一个 SO 页面上找到的这个解决方案,
<div class="col-sm-12" ng-repeat="data in dataNames">
{{data.name || '<b>NONE</b>'}}
</div>
但是,当我添加 NONE 文本时,它只是将整行显示为纯文本,并且似乎 angular 没有对其进行评估。
更新
我现在尝试调用此过滤器并使用 $sce 来允许我返回 html。这是过滤器
require(["app", "angular"], function(app, angular) {
app.filter("default", function ($sce) {
return function (input, def) {
return $sce.trustAsHtml(!!input ? input : '<b>' + def + '</b>');
};
});
});
这就是我的称呼
{{ name | default: 'NONE' }}
它正在调用函数并正确评估,但它将 b 标记显示为纯文本而不是 html。我可能没有正确使用 $sce 吗?
【问题讨论】:
-
您不能在表达式中使用 html 标签。您必须创建一个函数并使用 $sce 来返回值
标签: javascript angularjs