2015-08-11 2 views
0

Я хочу определить, рендер ли какой-либо ng-повторяющийся элемент.Как установить переменную области внутри ng-repeat?

Я пишу этот код

<div ng-show="anyRendered">Any has been rendered</div> 

<div ng-show="anyFilterActive">ANY FILTER IS ACTIVE</div> 

<div class="selected-filter-value" ng-if="filter.name && filterCtrl.isActiveFilter(filter)" data-ng-repeat="(name, filter) in filterOptions"> 
    <span ng-init="anyFilterActive = true;">{{filter.name}}:</span> 

</div> 

Но этот код не работает. Также я пытаюсь написать $ parent.anyRendered внутри ng-repeat.

+0

Можете ли вы опубликовать объект filterOptions – Aravinder

+0

, почему вы просто не используете $ index? то вы знаете, было ли smth оказано и сколько https://docs.angularjs.org/api/ng/directive/ngRepeat – stackg91

ответ

1

Попробуйте с нг-если

<div ng-show="filterOptions.length > 0">Any has been rendered</div> 

<div ng-if="filterOptions.length > 0" ng-repeat="(name, filter) in filterOptions"> 
<span></span> 
</div> 
+0

На самом деле, у меня сложнее ng-repeat и ng-if уже есть в ng-repeat – BILL

0

Вы не должны писать код логики в шаблонах: весь код должен находиться в ваших контроллерах, фильтров, директив и услуг. Директива ng-init доступна только для того, чтобы вы могли создавать псевдонимы, чтобы упростить ваши шаблоны.

Фильтры и директивы содержат «код представления», а контроллеры и службы содержат «код, связанный с бизнесом».

Вы можете создать фильтр, чтобы знать, если объект пуст или нет (filter code from another question), и использовать его с нг-если, нг-шоу ...

Результирующая шаблон:

<div ng-if="filterOptions|empty"> 
    Nothing to show! 
</div> 
<div ng-repeat="(k, v) in filterOptions"> 
    {{k}}, {{v}} 
</div> 
0

просто использовать $index

<div ng-repeat="(name, filter) in filterOptions"> 

<span ng-show="$index > 0"></span> 

</div> 

ngRepeat Docs $index

В примере в документах ng-repeat можно увидеть использование индекса $

+0

используйте выражение $ index> 0 вне ng-repeat? – BILL

+0

$ index можно использовать только в ng-повторе, если вам это нужно снаружи, вам, вероятно, придется писать свой собственный фильтр – stackg91

+0

, вы можете попробовать только передать индекс $ в значение функции или модели, тогда вы бы получили его в другом месте – stackg91

 Смежные вопросы

  • Нет связанных вопросов^_^