Если шаблон:
<div id="app">
<button @click="doEditing">Edit</button>
<input v-if="editing" v-model="editing.profile.name" />
<span>{{ user.profile.name }}</span>
</div>
, а приложение Vuejs:
var app = new Vue({
el: '#app',
data: {
user: {name: 'Foo'},
editing: null
},
methods: {
doEditing(){
this.editing = {...this.user};
}
}
})
даже this.editing = {...this.user};
, которое распространяет объект, назначает его по ссылке.Поэтому, когда я редактирую ввод, v-model
меняет this.user
, что не соответствует ожиданиям.
Я также проверил Object.assign
, но без шансов.