2017-07-31 82 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變量作爲字典(對象),請使用{}而不是[]