2017-07-31 66 views
0

我在一家Vue.js工作,我有:V-如果没有动态变化值

<span v-if="!change[product.id]['name']" v-on:click="show(product.id, 'name')" style="cursor:pointer"> 
    {{{ product.name }}} 
</span> 

<span v-if="change[product.id]['name']"> 
    okays 
</span> 

我初始化我“变”与:

this.$set('products', response.data.products) 
self.productsLoading=false 
let array = [] 
array['name'] = false 
for (let i = 0; i < response.data.products.length; i++) { 
    self.change[response.data.products[i].id] = array; 
} 
console.log(self.change) 

所以我console.log向我展示我想拥有这么好的阵列。

我的播放功能:

show(id, field){ 
    let array = this.change 
    array[id][field] = true 
    this.$set('change',array) 
    console.log(this.change) 
}, 

再次,我console.log还是不错的,当我在product.name点击,但我仍然看到的不是“okays”

数据product.name定义:

data() { 
     return { 
      products: [], 
      change: [] 
     } 
} 
+0

你还可以分享你的'数据'定义吗? – Nora

+0

@Nora已完成 –

+0

[这里](https://vuejs.org/2016/02/06/common-gotchas/#Why-isn't-the-DOM-updating)是如何解决问题的解释你正在经历。 – Nora

回答

1

此行可能是一个问题:

let array = [] 
array['name'] = false 

如果您需要使用array变量作为字典(对象),请使用{}而不是[]