以下为子组件 @change='showChange'为子组件事件
以下模板注册为 order-type组件
<template>
<select name="dType" class="form-control" v-el:select @change='showChange'>
<option value="" v-if="type=='selectAll'">全部</option>
<option v-for="branch in branchList" :value="branch.id" track-by="$index">
{{branch.name}}
</option>
</select>
</template>
以下为子组件方法:
showChange(event) {
for (let branch of this.branchList) {
if (branch['id'] === event.target.value) {
this.$emit('showChange',branch['prefix']);
}
}
以下是父组件
<order-type @showChange='alert(2)'></order-type>
但alert(2) 并未执行
你直接这么写有问题的吧
应该是
这里应该传递的是父组件方法的一个函数名,而不是直接写alert(2)
应该是这块出问题了
<option v-for="branch in branchList" :value="branch.id" track-by="$index">
for in对象循环取得的是索引,不是值,所以取不到branch.id,可以改成for of
以下为子组件 @change='showChange'为子组件事件
以下模板注册为 order-type组件
<template>
<select name="dType" class="form-control" v-el:select @change:parentChage='showChange'>
</select>
</template>
以下为子组件方法: