Merge pull request #1047 from sveltejs/gh-1040

create initial data for dynamic components in correct place
pull/1049/head
Rich Harris 7 years ago committed by GitHub
commit db646945f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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