Làm cách nào tôi có thể thực hiện ng-include có điều kiện trong angleJS?
Ví dụ: tôi chỉ muốn bao gồm một cái gì đó nếu, biến x
được đặt thành true
.
<div ng-include="/partial.html"></div>
Làm cách nào tôi có thể thực hiện ng-include có điều kiện trong angleJS?
Ví dụ: tôi chỉ muốn bao gồm một cái gì đó nếu, biến x
được đặt thành true
.
<div ng-include="/partial.html"></div>
Câu trả lời:
Nếu bạn đang sử dụng Angular v1.1.5 trở lên, bạn cũng có thể sử dụng ng-if :
<div ng-if="x" ng-include="'/partial.html'"></div>
Nếu bạn có bất kỳ phiên bản cũ hơn:
Sử dụng ng-switch :
<div ng-switch on="x">
<div ng-switch-when="true" ng-include="'/partial.html'"></div>
</div>
Bạn cũng có thể làm
<div ng-include="getInclude()"></div>
Trong bộ điều khiển của bạn
$scope.getInclude = function(){
if(x){
return "partial.html";
}
return "";
}
ng-switch
câu trả lời được đánh dấu không làm việc cho tôi.
Một phiên bản dễ đọc hơn một chút của một trong những câu trả lời. Cộng với cài đặt ng-include
để null
loại bỏ phần tử - giống như ng-if
.
<div ng-include="x ? 'true-partial.html' : null"></div>
Nếu điều kiện đủ đơn giản, bạn cũng có thể đặt logic điều kiện trực tiếp trong biểu thức ng-include:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
Lưu ý rằng biểu thức x
không nằm trong dấu ngoặc kép và do đó được đánh giá. Xem http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA để biết thêm chi tiết.
Tôi đã gặp sự cố tương tự và có thể phát hiện này có thể giúp ích cho ai đó. Tôi phải hiển thị các phần khác nhau khi nhấp vào liên kết nhưng cả ng-if và ng-switch đều không hoạt động trong trường hợp này (Mã bên dưới không hoạt động).
<button type="button" class="btn btn-link" ng-click="viewType('LIST')">List All</button>
<button type="button" class="btn btn-link" ng-click="viewType('EDIT')">Edit</button>
<button type="button" class="btn btn-link" ng-click="viewType('VIEW')">View</button>
<section class="col-md-8 left-col">
<span ng-if = "LIST">
<div data-ng-include="'./app/view/articles/listarticle.html'">
</span>
<span ng-if = "EDIT">
<div data-ng-include="'./app/view/articles/editorarticle.html'">
</span>
</section>
Vì vậy, những gì tôi đã làm là, thay vì sử dụng ng-if, Khi nhấp vào liên kết, chỉ cần cập nhật giá trị của partArticleUrl (là một mô hình trong bộ điều khiển) và khai báo mã bên dưới trên html.
<section class="col-md-8 left-col">
<div data-ng-include="partialArticleUrl">
</section>