我想知道除了使用 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 标记中?
Angular 1.1.5增加了对三元运算符的支持:
{{myVar === "two" ? "it's true" : "it's false"}}
对此还有一个答案。我发布了一个单独的答案,因为它更像是对解决方案的“精确”尝试,而不是可能的解决方案列表:
这是一个将执行“立即 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"}}