2017-10-03 18 views
0

私はVueJS 2を使用しています。子コンポーネントから親コンポーネントへの通信方法を実際に把握していません。

私は2つのコンポーネント:ダッシュボードダッシュボードパネルです。

execute() { 
    // emit to parent 
    this.$emit('executeSQL', this.value) 
    ... 
} 

そしてダッシュボード中:何も起こりません

mounted() { 
    // get event from DashboardPanel 
    this.$on('executeSQL', function(value) { 
     alert(value) 
    }) 
} 

、私はどこ$上を使用するドキュメントに見つからない

DashboardPanelでは、私は1つの方法を持っていますと私はそれを達成するために他の方法を使用することができますか分からないのですか?

+0

DashboardPanelが子コンポーネントであるとすると、 'this。$ parent。$ emit'を試しましたか? – Pradeepb

答えて

1

Dashboardのコンポーネントでは、のイベントへの対応方法をDashboardPanelから指定する必要があります。 DashboardのHTMLテンプレートで:

Dashboardの方法をbeeingて
<DashboardPanel v-on:executeSQL="doExecuteSQL($event)" /> 

doExecuteSQL

methods: { 
    doExecuteSQL(value) { ... } 
} 

希望これは役立ちます。

+0

はい私はこのメソッドを使用しましたが、$ onイベントがJSで機能しない理由を理解していません –

+0

$ onは同じコンポーネントによって生成されたイベントをリスンするためのものです。 'これは$ on( 'executeSQL')'はDashboardPanelコンポーネントでは動作しますが、Dashboardコンポーネントでは動作しません – thanksd