Vue条件列表渲染
Vue conditional list rendering
我正在处理分层导航元素,其中我在数组中的过滤器上有一个 v-for 循环。颜色、尺寸、性别等过滤器...
由于某些过滤器中的选项数量可能非常多(例如颜色),我想添加一个按钮以显示每个过滤器的更多选项。
我目前有以下功能可以显示每个过滤器的更多选项
<div v-if="showMoreFilters === false">
<div
v-for="(attribute, index) in filter.attributes"
:key="attribute.index">
<div class="layered-navigation__item"
v-if="index < filter.facetsettings.nrofshownattributes"
>
<SfFilter
:label="attribute.title"
:count="attribute.nrofresults"
:selected="attribute.isselected"
@change="function(x)>
</SfFilter>
</div>
</div>
</div>
<div v-else>
<div
v-for="attribute in filter.attributes"
:key="attribute.index"
>
<div class="layered-navigation__item">
<SfFilter
:label="attribute.title"
:count="attribute.nrofresults"
:selected="attribute.isselected"
@change="function(x)">
</SfFilter>
</div>
</div>
</div>
</div>
<sfButton @click="showMoreFilters = !showMoreFilters">
Show more filters"
</sfButton>
在每个过滤器中给出了每个过滤器所需的初始过滤器选项数量:
filter.facetsettings.nrofshownattributes
但是,问题是如果我按下按钮 (showMoreFilters),所有过滤器都会显示它们的所有选项。不仅仅是我点击的过滤器的选项数组。我该如何解决这个问题?
问题是有很多过滤器,但只有一个 showMoreFilters 标志。考虑向每个过滤器的 facetsettings
对象添加 showMore
属性...
<div v-if="!filter.facetsettings.showMore">
...
<sfButton @click="filter.facetsettings.showMore != filter.facetsettings.showMore">
Show more of just this filter"
</sfButton>
我正在处理分层导航元素,其中我在数组中的过滤器上有一个 v-for 循环。颜色、尺寸、性别等过滤器...
由于某些过滤器中的选项数量可能非常多(例如颜色),我想添加一个按钮以显示每个过滤器的更多选项。
我目前有以下功能可以显示每个过滤器的更多选项
<div v-if="showMoreFilters === false">
<div
v-for="(attribute, index) in filter.attributes"
:key="attribute.index">
<div class="layered-navigation__item"
v-if="index < filter.facetsettings.nrofshownattributes"
>
<SfFilter
:label="attribute.title"
:count="attribute.nrofresults"
:selected="attribute.isselected"
@change="function(x)>
</SfFilter>
</div>
</div>
</div>
<div v-else>
<div
v-for="attribute in filter.attributes"
:key="attribute.index"
>
<div class="layered-navigation__item">
<SfFilter
:label="attribute.title"
:count="attribute.nrofresults"
:selected="attribute.isselected"
@change="function(x)">
</SfFilter>
</div>
</div>
</div>
</div>
<sfButton @click="showMoreFilters = !showMoreFilters">
Show more filters"
</sfButton>
在每个过滤器中给出了每个过滤器所需的初始过滤器选项数量:
filter.facetsettings.nrofshownattributes
但是,问题是如果我按下按钮 (showMoreFilters),所有过滤器都会显示它们的所有选项。不仅仅是我点击的过滤器的选项数组。我该如何解决这个问题?
问题是有很多过滤器,但只有一个 showMoreFilters 标志。考虑向每个过滤器的 facetsettings
对象添加 showMore
属性...
<div v-if="!filter.facetsettings.showMore">
...
<sfButton @click="filter.facetsettings.showMore != filter.facetsettings.showMore">
Show more of just this filter"
</sfButton>