Vue在编写组件的时候,有定义具名slot,在用这个组件的时候,传入这个具名slot的内容,问题来了:用这个组件的时候传入具名slot的具体内容的时候用到组件定义时候非slot具名中的变量,类似于这样:
<div :class="$style.layer">
<div v-for="(item,index) in data" v-if="!item.hidden" :class="$style.piece" :style="{left: 100*index/(data.length - 1)+'%', width: 100/(data.length - 1)+'%'}">
<div v-for="sery in series" v-show="item[sery.key] !== undefined && !sery.hidden" :class="$style.point" :style="{bottom: 100*(item[sery.key] - yAxis_.min)/(yAxis_.max - yAxis_.min)+'%'}">
<div class="value">{{format(item[sery.key])}}</div>
</div>
<div :class="$style['u-tooltip']" :role="'u-tooltip-'+(index >= data.length/2 ? 'left' : 'right')+'-'+(getPercent(item) < 50 ? 'top' : 'bottom')" :style="{top: getPercent(item)+'%'}">
<slot v-if="tooltipTemplate" name="tooltipTemplate"></slot>
<div v-else v-for="sery in series">{{sery.name || sery.key}}: {{format(item[sery.key])}}</div>
</div>
</div>
</div>
这里色tooltipTemplate 我在使用的时候传入具名slot内容的时候要用到这个组件定义的data的v-for中的item,直接在使用中使用这个item会报错,我应该如何在使用中传入tooltipTemplate的内容
使用组件:
<u-line-chart>
<div :class="$style.tooltiptemplate" slot="tooltipTemplate" v-if="tooltipTemplate">
<div v-if="item.total !== undefined">总数:{{item.total}}</div>
<div v-for="sery in series">{{sery.name || sery.key}}: {{format(item[sery.key])}}{{yAxis.name}}</div>
</div>
</u-line-chart>
类似于这样,这里的item是组件定义中的item,但是不能这么用,我应该如何写?
拆分 solt 吧