Angularjs (phiên bản dưới 1.1.5) không cung cấp if/elsechứ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-hidenhư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-classchỉ 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-videolớp css cho phần tử div nếu video.largelà sự thật.
5. ng-ifChỉ thị:
Trong các phiên bản trên, 1.1.5bạn có thể sử dụng ng-ifchỉ thị. Điều này sẽ loại bỏ phần tử nếu biểu thức được cung cấp trả về falsevà chèn lại elementtrong 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>