Как я могу условно включить ng-include в angularJS?
Например, я хочу включить что-то только в том случае, если для переменной x
установлено значение true
.
<div ng-include="/partial.html"></div>
angularjs
angularjs-ng-include
JustGoscha
источник
источник
Вы также можете сделать
<div ng-include="getInclude()"></div>
В вашем контроллере
$scope.getInclude = function(){ if(x){ return "partial.html"; } return ""; }
источник
ng-switch
Отмечен ответ не работает для меня.Чуть более читабельный вариант одного из ответов. Плюс установка
ng-include
дляnull
удаляет элемент - так же , какng-if
.<div ng-include="x ? 'true-partial.html' : null"></div>
источник
Если условие достаточно простое, вы также можете поместить условную логику непосредственно в выражение ng-include:
<div ng-include="x && 'true-partial.html' || 'false-partial.html'"></div>
Обратите внимание, что выражение
x
не заключено в одинарные кавычки и поэтому оценивается. См. Http://plnkr.co/edit/4fvNDa6Gm3dbVLgsAZrA для получения дополнительной информации.источник
Я столкнулся с подобной проблемой, и, возможно, эта находка может кому-то помочь. Мне нужно отображать разные частичные данные при нажатии ссылки, но ng-if и ng-switch не работали в этом сценарии (код ниже не работал).
<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>
Итак, что я сделал, вместо использования ng-if при щелчке по ссылке просто обновите значение partialArticleUrl (которое является моделью в контроллере) и объявите ниже код в html.
<section class="col-md-8 left-col"> <div data-ng-include="partialArticleUrl"> </section>
источник