Angularjs (1.1.5'in altındaki sürümler) if/else
işlevsellik sağlamaz . Aşağıda, başarmak istediğiniz şey için göz önünde bulundurmanız gereken birkaç seçenek vardır:
( 1.1.5 veya daha üst bir sürümünü kullanıyorsanız aşağıdaki güncellemeye atlayın (# 5) )
1. Üçlü operatör:
@Kirk tarafından yorumlarda önerildiği gibi, bunu yapmanın en temiz yolu üçlü bir operatör kullanmaktır:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
aşağıdaki gibi bir şey kullanılabilir.
<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>
Alternatif olarak, kullanabilirsiniz, ng-show/ng-hide
ancak bunu kullanmak aslında hem büyük bir videoyu hem de küçük bir video öğesini oluşturur ve ardındanng-hide
koşulu koşulung-show
. Yani her sayfada aslında iki farklı öğe oluşturacaksınız.
4. Dikkate alınması gereken başka bir seçenek ng-class
direktiftir.
Bu aşağıdaki gibi kullanılabilir.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Yukarıdaki temel large-video
olarak div öğesine bir css sınıfı ekleyecektir.video.large
olarak doğruysa ekleyecektir.
5. ng-if
yönerge:
Yukarıdaki versiyonlarda direktifi 1.1.5
kullanabilirsiniz ng-if
. Bu, sağlanan ifade döndürülürse false
ve element
ifade döndürülürse DOM içine yeniden eklenirse öğeyi kaldırır true
. Aşağıdaki gibi kullanılabilir.
<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>