Ng-include'i koşullu olarak angular JS'de nasıl yapabilirim?
Örneğin, değişken x
olarak ayarlanmışsa , yalnızca bir şeyi dahil etmek istiyorum true
.
<div ng-include="/partial.html"></div>
Ng-include'i koşullu olarak angular JS'de nasıl yapabilirim?
Örneğin, değişken x
olarak ayarlanmışsa , yalnızca bir şeyi dahil etmek istiyorum true
.
<div ng-include="/partial.html"></div>
Yanıtlar:
Angular v1.1.5 veya sonraki bir sürümünü kullanıyorsanız ng- if'i de kullanabilirsiniz :
<div ng-if="x" ng-include="'/partial.html'"></div>
Daha eski bir sürüme sahipseniz:
Ng anahtarını kullanın :
<div ng-switch on="x">
<div ng-switch-when="true" ng-include="'/partial.html'"></div>
</div>
Sen de yapabilirsin
<div ng-include="getInclude()"></div>
Denetleyicinizde
$scope.getInclude = function(){
if(x){
return "partial.html";
}
return "";
}
ng-switch
İşaretli cevap benim için çalışmadı.
Cevaplardan birinin biraz daha okunaklı versiyonu. Artı ayarı ng-include
için null
tıpkı - uzaklaşmaların elemanı ng-if
.
<div ng-include="x ? 'true-partial.html' : null"></div>
Koşul yeterince basitse, koşullu mantığı doğrudan ng-include ifadesine de koyabilirsiniz:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
İfadenin x
tek tırnak içinde olmadığını ve bu nedenle değerlendirildiğini unutmayın. Daha fazla ayrıntı için http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA adresine bakın.
Benzer bir sorunla karşılaştım ve bu bulgu birine yardımcı olabilir mi? Bağlantı tıklandığında farklı bölümler göstermem gerekiyor, ancak ng-if ve ng-anahtarının her ikisi de bu senaryoda çalışmıyordu (Aşağıdaki kod çalışmıyordu).
<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>
Yaptığım şey, ng-if kullanmak yerine, Bağlantıya tıklandığında sadece partialArticleUrl değerini güncellemek (denetleyicide bir modeldir) ve html'de aşağıdaki kodu bildirmek.
<section class="col-md-8 left-col">
<div data-ng-include="partialArticleUrl">
</section>