在Vue 1.0中,我曾经通过简单地调用来将项添加到v-for中使用的数组中,如下所示items.push({})
:
http://jsbin.com/figiluteni/1/edit?html,js,输出
Vue 2.0中完全相同的代码将非反应对象插入到数组中:
http://jsbin.com/zuwihahiwa/1/edit?html,js,输出
(请注意,新添加的项目在编辑时不会实时更新)
<button @click="items.push({})">Add item</button>
我知道Vue在初始化时会在数组上插入钩子,但是作为Vue模型绑定,它创建了新项的“名称”属性,我认为它可以像在Vue 1中一样自动钩住。
我发现这种新行为非常不便,因为它迫使我添加要添加到Vue数据中的对象的原型并对其进行克隆:
http://jsbin.com/bamasobuti/1/edit?html,js,输出
在Vue的数据中:
item_prototype: {id: null, name: ""}
在模板中:
<button @click="items.push(_.clone(item_prototype))">Add item</button>
我的问题是:是否有建议的添加元素方法而不必保留空元素的原型?
根据Vue的文档,v-model="item.prop"
它只是以下方面的语法糖:
v-bind:value="item.prop" v-on:input="item.prop = $event.target.value"
。
要使其工作,只需停止使用v-model="item.prop"
并改用它即可:
:value="item.prop" @input="$set(item,'prop',$event.target.value)"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句