第一:先来看看这样写能不能实现效果,但是打印出来,竟然是未定义(undefined)
代码如下:
<view class="workitems">
<view class="oneitem" v-for="item in busiList" :key="item.id">
<view class="miniitem">
<businesstitle :module="item" @gotoDetail="gotoDetail()">
</businesstitle>
<worksubscribe :minimodule="miniitem" @click="gotoOder()" v-for="miniitem in item.workList"
:key="miniitem.id"> </worksubscribe>
<view class="morework" @click="checkmore(item)" :model="item" v-if="item.otherWorkNum>0">
<text class="worknum">查看其他{{item.otherWorkNum}}个工作岗位</text>
<u-icon name="arrow-right" size='22rpx'></u-icon>
</view>
</view>
</view>
</view>
解释一下:其中<businesstitle></businesstitle>和<worksubscribe></worksubscribe>是自己写的组件引用的组件,主要是看这个方法@click="checkmore(item)"这个方法,其中的item能否传下去
Js代码如下
methods: {
checkMore(item) {
console.log(item)
}
}
控制台打印出来
证明这样写的方法,传值不成功,我们使用另外一种方式
第二:以下代码为实现方法,将事件写成这种方式 @click="()=>checkMore(item)" ,再在控制台打印以下:
<view class="item" v-for="item in busiList" :key="item.id">
<view class="miniitem">
<businesstitle :module="item" @gotoDetail="gotoDetail()">
</businesstitle>
<worksubscribe :minimodule="miniitem" @click="gotoOder()" v-for="miniitem in item.workList"
:key="miniitem.id"> </worksubscribe>
<view class="morework" @click="()=>checkMore(item)" :model="item" v-if="item.otherWorkNum>0">
<text class="worknum">查看其他{{item.otherWorkNum}}个工作岗位</text>
<u-icon name="arrow-right" size='22rpx'></u-icon>
</view>
</view>
</view>
控制台打印:
这里就可以拿到item的东西了