0
コンポーネントcontacts-list
の子コンポーネントcontactView
があります。それ自体は子です。問題は、私は動的にボタンをクリックした後、このコンポーネントの内容vue jsが子コンポーネントにデータを渡す
HTML
<div id="wrapper">
<component :is="currentView" keep-alive></component>
</div>
JS
var IndexPage = Vue.component('index-page', {
template: '<div>Welcome to index page</div>'
})
var Contact = Vue.component('contactView', {
template: `
<div class="person-info">
<ul v-for="contact in contacts">
<span>here</span>
<li v-if="contact.email">
<div class="icon icon-mail"></div>
{{contact.email}}
</li>
</ul>
</div>
`,
props: ['contacts']
})
var ContactsList = Vue.component('contacts-list', {
template: `
<div id="list">
list
<div v-for="item in items">
<div class="person">
person
<span class="name">{{item.name}}</span>
<button class="trig">Show {{item.id}}</button>
</div>
<contact-view :contacts="item.contacts"> </contact-view>
</div>
</div>`,
computed: {
items: function(){
return this.$parent.accounts
}
},
components: {
'contact-view': Contact
}
})
var app = new Vue({
el: '#wrapper',
data: {
contacts: [],
currentView: 'index-page'
}
})
app.currentView = 'contacts-list';
app.accounts = [{name: 'hello', id: 1}];
$(document).on("click", "button.trig", function(){
alert('triggered');
app.accounts[0].contacts = [{email: '[email protected]'}]
})
を変更できないということです、コンポーネントは表示されません。変更されたデータ。どうやってこれを正しく行うことができますか?
JQueryは単なる例です。あなたが提案した方法は私のためには機能しません。https://jsfiddle.net/mcfpgkyo/3/ –
@ Marsel.Vまた、 'accounts'も動的に追加しています。私は答えを更新しました。 https://jsfiddle.net/mcfpgkyo/4/ – Bert