【发布时间】:2017-12-19 05:15:26
【问题描述】:
我的第一个组件是这样的:
<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,然后会得到响应ajax
我想将响应 ajax 和另一个参数发送到方法 createImage。方法createImage位于其他组件(第二个组件)
我的第二个组件是这样的:
<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 方法时改变第二个组件中的元素?
标签: vue.js vuejs2 vue-component vuex