我正在尝试使用Vue的scoped slots:
App.vue:
<template>
<div id="app">
<b-grid>
<slot name="col" :col="2">
<p>Some test</p>
</slot>
</b-grid>
</div>
</template>
BGrid.vue
<template>
<div class="b-grid">
<div class="container">
<div class="row">
<template slot="col" scope="props">
<div :class="'col' + props.col">This is a column</div>
</template>
</div>
</div>
</div>
</template>
但是,插槽显示在页面上。控制台中没有错误:
<div id="app">
<div class="b-grid">
<div class="container">
<div class="row"></div>
</div>
</div>
</div>
我做错了什么?
注意:我正在使用Vue 2.3.4
答案 0 :(得分:1)
您已翻转语法。您需要在子组件中定义slot
标记:
<div class="b-grid">
<div class="container">
<div class="row">
<slot name="col" :col="2"></slot>
</div>
</div>
</div>
然后,在父组件中,使用带有template
属性的slot
标记来传入要用于该广告位的内容:
<div id="app">
<b-grid>
<template slot="col" scope="props">
<div :class="'col' + props.col">This is a column</div>
</template>
</b-grid>
</div>