Wie kann ich das ng-include bedingt in angleJS durchführen?
Zum Beispiel möchte ich nur etwas einschließen, wenn die Variable auf gesetzt x
ist true
.
<div ng-include="/partial.html"></div>
Wie kann ich das ng-include bedingt in angleJS durchführen?
Zum Beispiel möchte ich nur etwas einschließen, wenn die Variable auf gesetzt x
ist true
.
<div ng-include="/partial.html"></div>
Antworten:
Wenn Sie Angular v1.1.5 oder höher verwenden, können Sie auch ng-if verwenden :
<div ng-if="x" ng-include="'/partial.html'"></div>
Wenn Sie eine ältere Version haben:
Verwenden Sie den ng-Schalter :
<div ng-switch on="x">
<div ng-switch-when="true" ng-include="'/partial.html'"></div>
</div>
Sie könnten auch tun
<div ng-include="getInclude()"></div>
In Ihrem Controller
$scope.getInclude = function(){
if(x){
return "partial.html";
}
return "";
}
ng-switch
markierte Antwort hat bei mir nicht funktioniert.
Eine etwas besser lesbare Version einer der Antworten. Plus-Einstellung ng-include
zum null
Entfernen des Elements - genau wie ng-if
.
<div ng-include="x ? 'true-partial.html' : null"></div>
Wenn die Bedingung einfach genug ist, können Sie die bedingte Logik auch direkt in den Ausdruck ng-include einfügen:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
Beachten Sie, dass der Ausdruck x
nicht in einfachen Anführungszeichen steht und daher ausgewertet wird. Weitere Informationen finden Sie unter http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA .
Ich bin auf ein ähnliches Problem gestoßen und möglicherweise kann dieser Befund jemandem helfen. Ich muss beim Klicken auf den Link verschiedene Partials anzeigen, aber ng-if und ng-switch funktionierten in diesem Szenario nicht (der folgende Code funktionierte nicht).
<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>
Also, was ich getan habe, ist, anstatt ng-if zu verwenden, beim Klicken auf den Link einfach den Wert von PartialArticleUrl (das ein Modell in Controller ist) zu aktualisieren und den folgenden Code in HTML zu deklarieren.
<section class="col-md-8 left-col">
<div data-ng-include="partialArticleUrl">
</section>