【发布时间】:2018-02-16 17:44:34
【问题描述】:
我有一个 vue 实例:
var vue = new Vue({
el: '#vue-wrapper',
data: {
items: [],
selectedItem: ''
})
我使用来自我的 phoenix 服务器的数据初始化项目,如下所示:
vue.items = <%= raw(@stories) %>
当我的页面加载完毕后,我想选择第一项作为起始项:
vue.selectedItem = vue.items[0]
我的 html 中有一个输入字段绑定到我的对象的标题属性
<input type="text" v-model="selectedItem.title"></input>
数据绑定工作正常,问题是 items[0] 正在与 selectedItem 一起更新,我不想要它。 我试过的:
var x = vue.items[0];
vue.selectedItem = X;
仍然绑定,
var x = <%= raw(@stories) %>
vue.items = x[0]
vue.selectedItem = x[0]
仍然绑定,并且:
vue.selectedItem = Object.assign({}, vue.items[0]);
对象之间仍然存在绑定。 我怎样才能只为 selectedItem 获得 2 路数据绑定?
【问题讨论】:
-
是的,因为它是一个编辑器。所以它应该是可编辑的
-
试试
vue.selectedItem = { ...vue.items[0] };,或者vue.selectedItem = JSON.parse(JSON.stringify(vue.items[0]));或者使用lodash#cloneDeep之类的东西,你需要克隆对象,现在你有一个对原始对象的引用。
标签: javascript vue.js phoenix-framework 2-way-object-databinding