<!--comviewonents/juan/juan.wxml--> <view class="model-wrapper" hidden="{{visible}}"> <view class="mask" bindtap="setVisible"></view> <view class="model-content"> <view class="delete" bindtap="setVisible"> <i class="icon-close">X</i> </view> <view class="title" wx:if="{{titleInfo}}">{{titleInfo}}</view> <slot name="reference"></slot> <view class="button-group" wx:if="{{leftButton || rightButton}}"> <view class="button-item" wx:if="{{leftButton}}" bindtap="left_button_click">{{leftButton}} </view> <view class="button-item black" wx:if="{{rightButton}}" bindtap="right_button_click">{{rightButton}} </view> </view> </view> </view>
// components/juan/juan.js Component({ /** * 組件的屬性列表 */ options: { multipleSlots: true // 在組件定義時的選項中啟用多slot支持 }, properties: { titleInfo:{ type:String, value:'ddd' }, leftButton:{ type:String, value:'取消' }, rightButton:{ type:String, value:'確認' } }, /** * 組件的初始數據 */ data: { visible:false, }, /** * 組件的方法列表 */ methods: { setVisible(){ this.setData({ visible:true, }) }, left_button_click(){ }, right_button_click(){ } } })
頁面中引用組件:
<!--pages/juan/juan.wxml--> <juan id="juan"> <view class="f-coupon-wrapper" slot="reference"> <view class="coupon-content-wrapper"> <image src="../../image/log.png" width="100%" alt="優惠券"></image> </view> </view> </juan>
但是需要注意的是,小程序slot渲染后的位置和slot處於wxml中的位置不一致。官方仍未解決