Angularjs(低于1.1.5的版本)不提供if/else功能。下面是一些你想要达到的目标的选择:
(如果您使用的是1.1.5或更高版本,则跳转到下面的更新(#5))
1. 三元操作符:
正如@Kirk在评论中所建议的那样,最干净的方法是使用三元操作符,如下所示:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
2. ng-switch指令:
可以像下面这样使用。
<div ng-switch on="video">
<div ng-switch-when="video.large">
<!-- code to render a large video block-->
</div>
<div ng-switch-default>
<!-- code to render the regular video block -->
</div>
</div>
3.Ng-hide / ng-show指令
或者,你也可以使用ng-show/ng-hide,但使用它实际上会同时渲染一个大视频和一个小视频元素,然后隐藏满足ng-hide条件的视频元素,显示满足ng-show条件的视频元素。在每个页面上,你会呈现两个不同的元素。
4. 另一个可以考虑的选项是ng-class指令。
可以如下使用。
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
上面的代码基本上会在div元素if video中添加一个大的video css类。大就是真理。
更新:Angular 1.1.5引入了ngIf指令
5. ng-if指令:
在1.1.5以上的版本中,你可以使用ng-if指令。如果提供的表达式返回false,则删除元素;如果表达式返回true,则将元素重新插入DOM。可如下使用。
<div ng-if="video == video.large">
<!-- code to render a large video block-->
</div>
<div ng-if="video != video.large">
<!-- code to render the regular video block -->
</div>