我試圖創建一個有兩個插槽的組件。第二個插槽基於第一個插槽中的項目數重複。我已經使用範圍插槽實現了這一點,但是,當數據在第一個插槽上更新時,第二個插槽不會自動更新它,直到觸發事件,例如:單擊調用方法的按鈕。Vuejs - 如何溝通範圍內插槽中父和子之間的變化
當數據在第一個插槽上更改時,是否有辦法讓第二個插槽更新其視圖?
這裏是我有例如:
的jsfiddle:https://jsfiddle.net/89vykm75/1/
new Vue({
\t el: '#app',
components: {
\t 'repeat-for-each-item': {
data: function() {
return {
items: []
}
},
\t template: `<div>
<slot name="item" v-for="item in items" :item="item"></slot>
<button @click="addItem()">Add item</button>
<slot name="repeat" v-for="item in items" :item="item"></slot>
</div>
`,
methods: {
addItem() {
this.items.push({});
}
}
}
}
});
<div id="app">
<repeat-for-each-item>
<template slot="item" scope="props">
<div>
<input type="text" v-model="props.item.name">
</div>
</template>
<template slot="repeat" scope="props">
<div>
<label>
<span v-if="props.item.name">{{props.item.name}}:</span>
<span v-else>No Name:</span>
</label>
<input type="text">
</div>
</template>
</repeat-for-each-item>
</div>
這很好,非常感謝!我還有很多要學習:) –