【发布时间】:2017-07-15 06:35:10
【问题描述】:
我的组件 vue 是这样的:
<template>
<div>
<ul class="list-inline list-photo">
<li v-for="item in items">
<template v-if="photoList[item]">
...
<img :src="baseUrl+'/img/products/thumbs/'+photo(item)">
...
</template>
</li>
</ul>
</div>
</template>
<script>
export default {
props: ['product'],
data() {
return {
items: [1,2,3,4,5],
baseUrl: window.Laravel.baseUrl,
photoList: this.product.photo_list.reduce(function(acc, p) { acc[Number(p.id)] = p; return acc;}, {}),
}
},
computed: {
photo(item) {
return (this.photoList) ? photoList[item].name : ''
}
},
methods: {
createImage(item, response) {
...
this.photo(item) = photoAdded.name
},
}
}
</script>
如果执行了 createImage 方法,我想用 photoAdded.name 的值更新计算上的照片。
能不能做到?
【问题讨论】:
-
默认情况下,计算属性是 getter-only,您不能像这样向它们传递参数,相反,您可以采用另一种方法,例如。使用方法,或为该计算属性定义 setter。阅读this documentation page 了解更多信息。
标签: vue.js vuejs2 vue-component vuex