【发布时间】:2017-03-03 19:49:33
【问题描述】:
我在这里设置了一个简单的编辑屏幕,我不知道为什么当我单击保存或取消时它没有隐藏表单。
Form 正在循环中显示一个简单的指令 selected.name == p.name。当我取消设置所选对象时,它不会更新 DOM。
表单内容正在保存到数组中,您可以看到是否进行了一些更改,单击保存,然后单击新行。但表格不会在取消或保存时隐藏。
希望我忽略了一些简单的东西。
谢谢
var vm = new Vue({
el: '#vue-instance',
data: {
selected: {
name:'',
price: 0
},
products: [
{name: 'Hamburger', price: 3.00},
{name: 'Taco', price: 1.00},
{name: 'Soda', price: 1.40},
{name: 'French Fries', price: 2.00}
]
},
methods: {
save: function(index){
this.products[index] = this.selected;
this.selected = {
name:'',
price: 0
};
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.min.js"></script>
<div id="vue-instance">
<ul>
<li v-for="p, i in products" @click="selected = p">
<span v-show="!selected || selected.name !== p.name">
{{ p.name }}: ${{ p.price }}
</span>
<span v-show="selected && selected.name == p.name">
<input type="text" v-model.lazy="selected.name" />
<input type="text" v-model.lazy="selected.price" />
<button @click="save(i)">Save</button>
<button @click="selected = {}">Cancel</button>
</span>
</li>
</ul>
</div>
【问题讨论】:
标签: javascript dom vue.js