mirror of https://github.com/sveltejs/svelte
Merge pull request #1490 from sveltejs/gh-1489
fix dynamic component bindings (#1489)pull/1493/head
commit
012289a4c2
@ -0,0 +1,11 @@
|
||||
<p>green {foo}</p>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
foo: 'green'
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,11 @@
|
||||
<p>red {foo}</p>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
foo: 'red'
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,36 @@
|
||||
export default {
|
||||
data: {
|
||||
x: true
|
||||
},
|
||||
|
||||
html: `
|
||||
<p>parent green</p>
|
||||
<p>green green</p>
|
||||
`,
|
||||
|
||||
test(assert, component, target) {
|
||||
// TODO replace this with component.set({ foo: undefined }) post-#1488
|
||||
// component.set({ foo: undefined });
|
||||
// delete component._state.foo;
|
||||
|
||||
component.set({
|
||||
x: false,
|
||||
foo: undefined
|
||||
});
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>parent red</p>
|
||||
<p>red red</p>
|
||||
`);
|
||||
|
||||
component.set({
|
||||
x: true,
|
||||
foo: undefined
|
||||
});
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>parent green</p>
|
||||
<p>green green</p>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,16 @@
|
||||
<p>parent {foo}</p>
|
||||
<svelte:component this="{x ? Green : Red}" bind:foo />
|
||||
|
||||
<script>
|
||||
import Green from './Green.html';
|
||||
import Red from './Red.html';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
Green,
|
||||
Red
|
||||
};
|
||||
}
|
||||
};
|
||||
</script>
|
Loading…
Reference in new issue