for循环内的Vue插槽范围

时间:2019-03-05 14:13:03

标签: javascript vue.js vuejs2

我在v-for循环中有多个插槽,如下所示。除了将我的数据绑定到每个插槽之外,还有其他方法可以将数据绑定到v-for循环中的所有插槽吗?

<div class="vehicle-listing" v-for="(vehicle, index) in vehicles" :key="vehicle.id ? vehicle.id : 'undefined'+index">

    <div class="vehicle-listing__image">
        <slot name="listing-image" v-bind:vehicle="vehicle">
            Default content
        </slot>
    </div>

    <div class="vehicle-listing__title">
        <slot name="listing-title" v-bind:vehicle="vehicle">
            <slot name="listing-title__header" v-bind:vehicle="vehicle">
                Default content
            </slot>
            <slot name="listing-title__subtitle" v-bind:vehicle="vehicle">
                Default content
            </slot>
            <slot name="listing-title__price" v-bind:vehicle="vehicle">
                Default content
            </slot>
            <slot name="listing-title__favourites" v-bind:vehicle="vehicle">
               Default content
            </slot>
        </slot>
    </div>

    <div class="vehicle-listing__summary">
        <slot name="listing-summary" v-bind:vehicle="vehicle">
            Default content
        </slot>
    </div>

    <div class="vehicle-listing__finance">
        <slot name="listing-finance" v-bind:vehicle="vehicle">
            Default content
        </slot>
    </div>

    <div class="vehicle-listing__info">
        <slot name="listing-info" v-bind:vehicle="vehicle">
           Default content
        </slot>
    </div>

    <div class="vehicle-listing__location">
        <slot name="listing-location" v-bind:vehicle="vehicle">
           Default content
        </slot>
    </div>

    <div class="vehicle-listing__button-block">
        <slot name="listing-cta" v-bind:vehicle="vehicle">
           Default content
        </slot>
    </div>

</div>

1 个答案:

答案 0 :(得分:2)

否,无法一次绑定到所有插槽。您需要为每个插槽分别提供一个绑定。

https://vuejs.org/v2/guide/components-slots.html#Scoped-Slots