create initial data for dynamic components in correct place - fixes #1040

pull/1047/head
Rich Harris 8 years ago
parent 4202c56d8e
commit 7a8e17779c

@ -256,13 +256,13 @@ export default class Component extends Node {
var ${switch_vars.value} = ${snippet};
function ${switch_vars.props}(${params}) {
${statements.length > 0 && statements.join('\n')}
return {
${componentInitProperties.join(',\n')}
};
}
if (${switch_vars.value}) {
${statements.length > 0 && statements.join('\n')}
var ${name} = new ${expression}(${switch_vars.props}(${params}));
${beforecreate}

@ -0,0 +1,29 @@
export default {
data: {
x: true,
foo: 'one'
},
html: `
<p>green one</p>
`,
test(assert, component, target) {
component.set({
x: false
});
assert.htmlEqual(target.innerHTML, `
<p>red one</p>
`);
component.set({
x: true,
foo: 'two'
});
assert.htmlEqual(target.innerHTML, `
<p>green two</p>
`);
}
};

@ -0,0 +1,15 @@
<:Component {x ? Green : Red} bind:foo />
<script>
import Green from './Green.html';
import Red from './Red.html';
export default {
data() {
return {
Green,
Red
};
}
};
</script>
Loading…
Cancel
Save