【发布时间】:2013-03-02 18:53:55
【问题描述】:
有没有办法在AngularJS的模板中内联编写逻辑。
我想做的是这样的:
<div ng-repeat="item in items">
{{item.isValid ? 'Valid item' : 'Invalid Item'}}
</div>
【问题讨论】:
有没有办法在AngularJS的模板中内联编写逻辑。
我想做的是这样的:
<div ng-repeat="item in items">
{{item.isValid ? 'Valid item' : 'Invalid Item'}}
</div>
【问题讨论】:
您可以使用&& 和||,它们最终会像三元运算符一样工作。
{{item.isValid && 'Valid' || 'Invalid' }}
编辑:Angular 在 1.1.5 中引入了三元运算符:
{{item.isValid ? 'Valid' : 'Invalid' }}
【讨论】:
您不能在角度表达式中使用条件。而且,如果您的 div 内容很轻(只是文本),您可能需要使用 ng-bind(它还可以让您免于使用额外的 span 元素):
<div ng-repeat="item in items" ng-bind="{true: 'Valid item', false: 'Invalid item'}[item.isValid]"></div>
【讨论】:
你可以用 ng-show 插入一个 span 来显示你的条件文本
示例
<div ng-repeat="item in items">
<span ng-show="item.isValid">
Valid item
</span>
<span ng-show="!item.isValid">
Invalid item
</span>
</div>
【讨论】: