Angularjs (versi di bawah 1.1.5) tidak menyediakan if/else
fungsionalitas. Berikut adalah beberapa opsi untuk mempertimbangkan apa yang ingin Anda capai:
( Langsung ke pembaruan di bawah ini (# 5) jika Anda menggunakan versi 1.1.5 atau lebih tinggi )
1. Operator ternary:
Seperti yang disarankan oleh @Kirk dalam komentar, cara paling bersih untuk melakukan ini adalah dengan menggunakan operator ternary sebagai berikut:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
bisa digunakan seperti berikut ini.
<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>
Atau, Anda juga dapat menggunakan ng-show/ng-hide
tetapi menggunakan ini sebenarnya akan membuat baik video besar dan elemen video kecil dan kemudian menyembunyikan yang memenuhi ng-hide
syarat dan menunjukkan yang memenuhi ng-show
syarat. Jadi pada setiap halaman Anda sebenarnya akan merender dua elemen yang berbeda.
4. Pilihan lain untuk dipertimbangkan adalah ng-class
arahan.
Ini dapat digunakan sebagai berikut.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Di atas pada dasarnya akan menambahkan large-video
kelas css ke elemen div jika video.large
benar.
Pada versi di atas 1.1.5
Anda dapat menggunakan ng-if
arahan. Ini akan menghapus elemen jika ekspresi yang disediakan kembali false
dan memasukkan kembali element
di DOM jika ekspresi kembali true
. Dapat digunakan sebagai berikut.
<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>