【发布时间】:2020-09-16 16:48:01
【问题描述】:
目标:Vue 组件 input-address 必须在 Vue 组件 mail-composer 中,并且只有在有人点击 通讯录时才显示地址列表/em> 按钮。当有人点击其中一封显示的邮件或手动填写 To 字段时,createdmail.to 必须获取该值,而我必须隐藏地址列表。
Vue 组件 mail-composer。该组件接收地址列表。 (这里一切正常,我认为唯一不能正常工作的部分是 input-address 标签内的 v-model)
Vue.component('mail-composer', {
props: ['addressesbook'],
methods: {
send: function(createmail) {
this.$emit('send', createmail);
}
},
template:
`
<div>
<input-address :addresses="addressesbook" v-model="createmail.to"></input-address>
<p><b>Subject: </b><input type="text" v-model="createmail.subject"></input></p>
<p><b>Body: </b><textarea v-model="createmail.body"></textarea></p>
<button @click="send(createmail)">Send</button>
</div>
`,
data(){
return{
createmail:{
to: '',
subject: '',
body: ''
}
}
}
});
另一个 Vue 组件就是这个,它在同一个文件中。 (我认为所有的问题都在这里)。
只有当有人点击通讯录按钮时我才需要显示地址列表,当有人再次点击该按钮或列表中的一封电子邮件时我必须隐藏它。当有人单击列表中的邮件时,mail-composer 中的 createmail.to 属性必须获取 mail 的值,如果我决定将邮件放在手它必须发生相同的情况。
Vue.component('input-address',{
props:["addresses"],
template:
`
<div>
<label><b>To: </b><input type="text"></input><button @click="!(displayAddressBook)">Address Book</button></label>
<ul v-if="displayAddressBook">
<li v-for="address in addresses">
{{address}}
</li>
</ul>
</div>
`,
data(){
return{
displayAddressBook: false
}
}
})
【问题讨论】:
标签: javascript html vue.js tags vue-component