リストに表示されるクリックした要素を取得する必要があります。そして、index.htmlにあるメールリストタグを介して、私のvueインスタンスにあるメソッドでこの要素を印刷します
したがって、jsonオブジェクトを反復し、そのすべての要素から2つの属性のみを出力するVueコンポーネントがあります。
Vue.component('mail-list', {
props: ['inboxmail'],
methods: {
selectmail: function(){
this.$emit('selectmail', this.mail);
}
},
template:
`
<div>
<ul>
<li v-for="i in inboxmail" @click="selectedmail">
{{i.from}}:{{i.subject}}
</li>
</ul>
</div>
`
});
これを実行すると、index.html に次の 2 つの要素が表示されます。
test1@test.com:こんにちは
test2@test.com:お元気ですか?
この 2 つの要素のいずれかをクリックして、クリックした要素を取得します。次に、index.html にある mail-list タグを介して setSelectedMail という vue メソッドに送信します。
index.html:
<div id="app">
<mail-list v-bind:inboxmail="inbox" @selectmail="setSelectedMail($event)"></mail-list>
</div>
最後に、選択したメールを取得する vue インスタンスを次に示します。
let options = {
el: "#app",
data: {
inbox: '',
selectedMail:{}
},
methods: {
setSelectedMail: function(mail){
this.selectedMail = mail;
}
} //end methods
}
//ViewModel (vm)
let vm = new Vue(options);
私は何を間違っていますか?