Jak mogę warunkowo uwzględnić ng w angularJS?
Na przykład chcę dołączyć tylko coś, jeśli zmienna x
jest ustawiona na true
.
<div ng-include="/partial.html"></div>
Jak mogę warunkowo uwzględnić ng w angularJS?
Na przykład chcę dołączyć tylko coś, jeśli zmienna x
jest ustawiona na true
.
<div ng-include="/partial.html"></div>
Odpowiedzi:
Ty też możesz to zrobić
<div ng-include="getInclude()"></div>
W twoim kontrolerze
$scope.getInclude = function(){
if(x){
return "partial.html";
}
return "";
}
ng-switch
Zaznaczono odpowiedź nie działa dla mnie.
Nieco bardziej czytelna wersja jednej z odpowiedzi. Plus ustawienie, ng-include
aby null
usunąć element - tak jak ng-if
.
<div ng-include="x ? 'true-partial.html' : null"></div>
Jeśli warunek jest wystarczająco prosty, możesz również umieścić logikę warunkową bezpośrednio w wyrażeniu ng-include:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
Zwróć uwagę, że wyrażenie x
nie jest w apostrofach i dlatego jest oceniane. Więcej informacji można znaleźć pod adresem http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA .
Napotkałem podobny problem i może to odkrycie może komuś pomóc. Muszę wyświetlać różne podszewki po kliknięciu linku, ale ng-if i ng-switch nie działały w tym scenariuszu (poniższy kod nie działał).
<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>
Więc zamiast używać ng-if, po kliknięciu linku zaktualizuj wartość PartialArticleUrl (który jest modelem w kontrolerze) i zadeklaruj poniższy kod w html.
<section class="col-md-8 left-col">
<div data-ng-include="partialArticleUrl">
</section>