Так что не следует объединять v-for
и v-if
в одном элементе. То, что вы можете сделать, это либо включить фильтр в ваш v-for
:
<div v-for="item in items.filter(i => i.exampleKey)">{{item.foo}}</div>
, либо (мое предпочтение) вы можете выполнять итерации элементов в обычном режиме для создания контейнерных элементов div и добавлять дочерний контент только там, где требуется условие удовлетворен:
<div v-for="item in items">
<div v-if="item.exampleKey">{{item.foo}}</div>
</div>
Если вы хотите добавить элемент управления, чтобы скрывать / показывать элементы с exampleKey
ложью, вы можете изменить свой l oop на:
<div v-for="item in items">
<div v-if="item.exampleKey || showItemsWithFalseExampleKey">{{item.foo}}</div>
</div>
И вы можете создать свойство данных "showItemsWithFalseExampleKey", которое будет переключаться кнопкой:
<button @click="showItemsWithFalseExampleKey = !showItemsWithFalseExampleKey">Toggle hidden items</button>
Конечно, стоимость рендеринга для v-if
намного выше, чем при использовании v-show
, поэтому выберите, какой лучше в зависимости от вашей ситуации: https://vuejs.org/v2/guide/conditional.html#v -if-vs-v-show