小编典典

angular.js 中的内联条件

all

我想知道除了使用 ng-show 等之外,是否有一种方法可以有条件地显示内容。例如,在backbone.js中,我可以在模板中对内联内容做一些事情,例如:

<% if (myVar === "two") { %> show this<% } %>

但是在角度上,我似乎仅限于显示和隐藏包含在 html 标签中的东西

<p ng-hide="true">I'm hidden</p>
<p ng-show="true">I'm shown</p>

Angular 中推荐的方法是仅使用 {{}} 有条件地显示和隐藏 Angular 中的内联内容,而不是将内容包装在 html 标记中?


阅读 59

收藏
2022-07-01

共1个答案

小编典典

编辑:下面 2Toad 的答案就是您要找的!点赞那个东西

Angular 1.1.5增加了对三元运算符的支持:

{{myVar === "two" ? "it's true" : "it's false"}}

如果您使用的是 Angular <= 1.1.4,那么这个答案就可以了:

对此还有一个答案。我发布了一个单独的答案,因为它更像是对解决方案的“精确”尝试,而不是可能的解决方案列表:

这是一个将执行“立即 if”(又名 iif)的过滤器:

app.filter('iif', function () {
   return function(input, trueValue, falseValue) {
        return input ? trueValue : falseValue;
   };
});

并且可以像这样使用:

{{foo == "bar" | iif : "it's true" : "no, it's not"}}
2022-07-01