このような私の最初のコンポーネント:vue.js 2の他のコンポーネントでメソッドを呼び出す方法はありますか?
<template>
...
</template>
<script>
export default {
...
methods: {
addPhoto() {
const data = { id_product: this.idProduct}
const item = this.idImage
this.$store.dispatch('addImage', data)
.then((response) => {
this.createImage(item, response)
});
},
}
}
</script>
方法addPhotoが呼び出された場合、それは、Ajaxを呼び出しますし、それは私が、メソッドはcreateImageに応答AJAXと別のパラメータを送信するレスポンス・アヤックス
を取得します。どのように私は第二の成分にはcreateImageメソッドを実行することができ、その後、第2の要素を変更することができます
<template>
<div>
<ul class="list-inline list-photo">
<li v-for="item in items">
<div v-if="clicked[item]">
<img :src="image[item]" alt="">
<a href="javascript:;" class="thumb-check"><span class="fa fa-check-circle"></span></a>
</div>
<a v-else href="javascript:;" class="thumb thumb-upload"
title="Add Photo">
<span class="fa fa-plus fa-2x"></span>
</a>
</li>
</ul>
</div>
</template>
<script>
export default {
...
data() {
return {
items: [1,2,3,4,5],
clicked: [], // using an array because your items are numeric
}
},
methods: {
createImage(item, response) {
this.$set(this.clicked, item, true)
},
}
}
</script>
:メソッドはcreateImageは、他の成分(第二成分)は、このような
私の第二の成分にあります。成分?
これは可能ですか? addPhotoメソッドが実行されたときに、2番目のコンポーネントの要素を変更する別の解決策があるかどうかを確認します。 –
最初のコンポーネントと2番目のコンポーネントの関係は何ですか?彼らは親子ですか、兄弟ですか?通常は、子からイベントを受け取ってそのイベントのハンドラを親に登録します(そうでなければ参照を得ることができます)。コンポーネントは['ref'](https://vuejs.org/v2/api/#ref)を使ってメソッドを直接呼び出します。 –