Angularjs (phiên bản dưới 1.1.5) không cung cấp if/else
chức năng. Sau đây là một vài lựa chọn để xem xét cho những gì bạn muốn đạt được:
( Chuyển đến bản cập nhật bên dưới (# 5) nếu bạn đang sử dụng phiên bản 1.1.5 trở lên )
1. Toán tử ternary:
Theo đề xuất của @Kirk trong các bình luận, cách làm sạch nhất này sẽ là sử dụng toán tử ternary như sau:
<span>{{isLarge ? 'video.large' : 'video.small'}}</span>
có thể được sử dụng một cái gì đó như sau.
<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>
Ngoài ra, bạn cũng có thể sử dụng ng-show/ng-hide
nhưng sử dụng điều này thực sự sẽ hiển thị cả video lớn và yếu tố video nhỏ và sau đó ẩn video đáp ứng ng-hide
điều kiện và hiển thị ng-show
điều kiện đáp ứng điều kiện. Vì vậy, trên mỗi trang sẽ thực sự hiển thị hai yếu tố khác nhau.
4. Một lựa chọn khác để xem xét là ng-class
chỉ thị.
Điều này có thể được sử dụng như sau.
<div ng-class="{large-video: video.large}">
<!-- video block goes here -->
</div>
Về cơ bản ở trên sẽ thêm một large-video
lớp css cho phần tử div nếu video.large
là sự thật.
5. ng-if
Chỉ thị:
Trong các phiên bản trên, 1.1.5
bạn có thể sử dụng ng-if
chỉ thị. Điều này sẽ loại bỏ phần tử nếu biểu thức được cung cấp trả về false
và chèn lại element
trong DOM nếu biểu thức trả về true
. Có thể được sử dụng như sau.
<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>