这是我的根元素,在数据中“预订”是一个带有网站预订的对象。Sitebooking 对象可以具有包含名字和姓氏的对象数组。
var app = new Vue({
el: '#app',
data: {
booking: {
sitebooking: [{
firstname: "",
lastname: ""
},{
firstname: "",
lastname: ""
}],
}
}
});
这是我的模板(子组件),
<template id="sitebooking_template">
<div>
<div class="row clearfix">
<div class="col-md-6">
<div class="form-group required">
<label for="firstname">First name</label>
<input class="form-control" placeholder="First name" required="" name="firstname" type="text" value="" id="firstname" v-model="newcompsitebooking.firstname">
</div>
</div>
<div class="col-md-6">
<div class="form-group required">
<label for="lastname">Last name</label>
<input class="form-control" placeholder="Last name" required="" name="lastname" type="text" value="" id="lastname" v-model="newcompsitebooking.lastname">
</div>
</div>
</div>
</div>
</template>
我正在循环通过父组件中的 booking.sitebooking 对象来创建多个子组件(每个站点预订都会得到一个子组件)。
<div class="" id="app">
<sitebooking v-for="(val,idx) in booking.sitebooking" :key="idx" :my-sb="val"></sitebooking>
</div>
我通过“my-sb”道具传递值并分配给子组件中的本地数据。
Vue.component('sitebooking', {
template: '#sitebooking_template',
props:["mySb"],
data: function () {
return {
newcompsitebooking : this.mySb,
}
}
});
到目前为止一切正常,但奇怪的行为是每当我更改子组件中的值时,它也会更新父组件的数据。但是根据 vuejs 文档,子组件的更改将通过 emit 传播回父组件。但是我没有将数据发送回父级,但值仍然会在父级中自动更新。
有人可以帮忙吗?