Angularjs(低于 1.1.5 的版本)不提供if/else
功能。以下是您想要实现的目标的几个选项:
(如果您使用的是 1.1.5 或更高版本,请跳转到下面的更新(#5))
1、三元运算符:
正如@Kirk 在评论中所建议的那样,最简洁的方法是使用三元运算符,如下所示:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
可以使用类似下面的东西。
<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>
或者,您也可以使用ng-show/ng-hide
,但使用它实际上会渲染一个大视频和一个小视频元素,然后隐藏满足ng-hide
条件的元素并显示满足ng-show
条件的元素。因此,在每个页面上,您实际上将呈现两个不同的元素。
4. 另一个需要考虑的选项是ng-class
指令。
这可以如下使用。
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
如果是真的,上面基本上会large-video
为 div 元素添加一个 css 类video.large
。
在上述版本中,1.1.5
您可以使用该ng-if
指令。如果提供的表达式返回,这将删除元素,如果表达式返回false
,则将 重新插入element
DOM true
。可以如下使用。
<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>