2017-07-17 10 views
-1

ここに事があります。 子コンポーネントにボタンがあり、ボタンをクリックするとイベントが発生します。親コンポーネントがマウントされたときにトリガしたいのですが、どうすればいいですか?または、目標に達する別の方法がありますか? PS:このボタンは、子コンポーネントのv-forによって生成されます。Vueでクリックイベントをトリガーするには

+0

あなたはいくつかのコードを追加することができますか? – papey

+0

'mounted'フック内のリスナーを手動で呼び出すことができます。それが助けにならない場合は、いくつかのコードを共有してください。 – wostex

+0

リスナーには、子コンポーネントからの引数が必要です。コードが助けになるとは思わないので、ここに入れなかった。 – RaUnicorn

答えて

1

あなたの子コンポーネントは次のようになります。

<template> 
    <div class="child"> 
    <button @click="buttonClick">Button</button> 
    </div> 
</template> 

<script> 
    export default { 
    props: ['buttonId'], 
    methods:{ 
     buttonClick() { 
     this.$emit('buttonClick', this.buttonId) 
     } 
    } 
    } 
</script> 

そして、あなたの親コンポーネント:

<template> 
    <div class="parent"> 
    <child v-for="i in 5" :buttonId="i"></child> 
    </div> 
</template> 

<script> 
    import Child from './Child.vue' 

    export default { 
    components: { 
     Child, 
    }, 
    methods: { 
     onButtonClick(buttonId) { 
     console.log('Got a click event from button ', buttonId) 
     } 
    }, 
    mounted() { 
     this.$children().forEach(function(child) { 
     child.buttonClick() 
     }) 
    } 
    } 
</script> 
関連する問題