1
同じコンポーネント内のボタンをクリックすると、Vue v2.3.4(quasar-framework v0.14.2)モーダルComponentAが動作します。 MyModalコンポーネントはうまく動作しているようです(ボタンでトリガーできるので)。しかし私はモーダル( 'myUtilElement'から)を引き起こすべき別のutil.jsファイルにコードを持っています。どうやってやるの?別のjsファイルからvueコンポーネントメソッドを呼び出す方法
ComponentA.vue
<template>
<div>
<div id='lotsofstuff'></div>
<myModal ref="myModal"></myModal>
</div>
</template>
<script>
import MyModal from '../MyModal.vue'
export default {
name: 'componentA',
components: {MyModal},
methods: {
openModal: function() {
this.$refs.myModal.open()
},
otherMethods:...etc.
}
Util.js
import ComponentA from '../ComponentA.vue'
myUtilElement.addEventListener('click', triggerModal, false)
function triggerModal() {
ComponentA.methods.openModal()
}
私は今、コンソールにエラーを以下の取得:
Uncaught TypeError: Cannot read property 'openModal' of undefined
at HTMLElement.triggerModal
new ComponentA? –
[ドキュメントの親子でないコミュニケーション](https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication)を参照してください。 – Nit
' 'に 'modalTest'という名前を付けている間に' this。$ refs.myModal'を使っているようです。 –
Vincent