Ce qui suit est un sous-composant @change='showChange' est un événement de sous-composant
Le modèle suivant est enregistré en tant que composant de type commande
<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>
Les méthodes suivantes sont des sous-composants :
showChange(event) {
for (let branch of this.branchList) {
if (branch['id'] === event.target.value) {
this.$emit('showChange',branch['prefix']);
}
}
Ce qui suit est le composant parent
<order-type @showChange='alert(2)'></order-type>
Mais alert(2) n'est pas exécuté
Vous venez de l'écrire comme ça, n'est-ce pas ?
Ce qui doit être transmis ici est un nom de fonction de la méthode du composant parent au lieu d'écrire directement alert(2)
Cela devrait être le problème
<option v-for="branch in branchList" :value="branch.id" track-by="$index">
La boucle for in object obtient l'index, pas la valeur, donc branch.id ne peut pas être obtenu, il peut être modifié en for of
Ce qui suit est un sous-composant @change='showChange' est un événement de sous-composant
Le modèle suivant est enregistré en tant que composant de type commande
<template>
<select name="dType" class="form-control" v-el:select @change:parentChage='showChange'>
</select>
</template>
Les méthodes suivantes sont des sous-composants :