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>
angularjs
angularjs-ng-include
JustGoscha
źródło
źródło
Ty też możesz to zrobić
<div ng-include="getInclude()"></div>
W twoim kontrolerze
$scope.getInclude = function(){ if(x){ return "partial.html"; } return ""; }
źródło
ng-switch
Zaznaczono odpowiedź nie działa dla mnie.Nieco bardziej czytelna wersja jednej z odpowiedzi. Plus ustawienie,
ng-include
abynull
usunąć element - tak jakng-if
.<div ng-include="x ? 'true-partial.html' : null"></div>
źródło
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 .źródło
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>
źródło