我在VueJS中構建了我的第一個項目,並且無法使用v-if顯示/隱藏模板。我有一個數據模型布爾變量(groups.categories.descEditable),我正在切換顯示/隱藏模板。出於某種原因,當我更改該值時,模板不會自動更新。Vue模板不更新
<tbody v-for="group in groups">
...
<tr v-for="cat in group.categories">
...
<td class="td-indent">
<input v-if="cat.descEditable" :value="cat.description" type="text" class="form-control">
<div v-else v-on:click="editDesc(cat.id)">{{ cat.description }}</div>
<div>{{cat.descEditable}}</div>
</td>
...
</tr>
</tbody>
methods: {
editDesc (cat_id) {
let vm = this
this.groups.forEach(function(group, gr_ind){
group.categories.forEach(function(cat, ind) {
if (cat_id == cat.id)
cat.descEditable = true
else
cat.descEditable = false
})
})
}
},
所以我想在文字輸入顯示,如果descEditable是真實的(一旦點擊含有描述DIV),否則顯示與靜態描述值股利。 descEditable屬性似乎正確更新,但輸入元素上的v-if沒有對它作出反應。我必須誤解vuejs的一些基本內容,只是無法弄清楚它是什麼。
我發現模板狀態實際上在內部更新,但它不是渲染上的某些原因。我通過調用vm。$ forceUpdate()找到了一個解決方案,但是這看起來並不是真正的「正確」答案。如果有人有更好的方法,請分享。 – user3246127