Closed
Description
I have this in my template:
<div v-if="detail" v-with="detail" v-component="detail">
<button v-on="click:close">Close</button>
<h1>{{ name }}</h1>
</div>
When I try to update the root detail
variable it duplicates the component.
<!--v-if-start-->
<div>
<button>Close</button>
<h1>Foo</h1>
</div>
<!--v-component-->
<div>
<button>Close</button>
<h1>Foo</h1>
</div>
<!--v-component-->
<!--v-if-end-->
Here's my HTML, JS and a fiddle so you can see if I'm doing anything dumb off the bat.
If I switch the v-if
to a v-show
it works as expected.
<div style="float: left; width: 40%;">
<div v-if="detail" v-with="detail" v-component="detail">
<button v-on="click:close">Close</button>
<h1>{{ name }}</h1>
</div>
</div>
<div style="float: right; width: 40%;">
<div>Items clicked below are creating multiple detail components.</div>
<ul>
<li v-repeat="items" v-component="item" v-on="click:setDetail">
{{ name }}
</li>
</ul>
</div>
new Vue({
el: 'body',
data: {
detail: false,
items: [
{ name: "Foo" },
{ name: "Bar" }
]
},
components: {
detail: {
methods: {
close: function () {
this.$root.detail = false;
}
}
},
item: {
methods: {
setDetail: function () {
this.$root.detail = this.$data;
}
}
}
}
});
Here's a jsfiddle: http://jsfiddle.net/ucLafhck/5/
Metadata
Metadata
Assignees
Labels
No labels