Skip to content

Commit 7a8e177

Browse files
committed
create initial data for dynamic components in correct place - fixes #1040
1 parent 4202c56 commit 7a8e177

File tree

5 files changed

+47
-1
lines changed

5 files changed

+47
-1
lines changed

src/generators/nodes/Component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,13 @@ export default class Component extends Node {
256256
var ${switch_vars.value} = ${snippet};
257257
258258
function ${switch_vars.props}(${params}) {
259+
${statements.length > 0 && statements.join('\n')}
259260
return {
260261
${componentInitProperties.join(',\n')}
261262
};
262263
}
263264
264265
if (${switch_vars.value}) {
265-
${statements.length > 0 && statements.join('\n')}
266266
var ${name} = new ${expression}(${switch_vars.props}(${params}));
267267
268268
${beforecreate}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>green {{foo}}</p>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>red {{foo}}</p>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
export default {
2+
data: {
3+
x: true,
4+
foo: 'one'
5+
},
6+
7+
html: `
8+
<p>green one</p>
9+
`,
10+
11+
test(assert, component, target) {
12+
component.set({
13+
x: false
14+
});
15+
16+
assert.htmlEqual(target.innerHTML, `
17+
<p>red one</p>
18+
`);
19+
20+
component.set({
21+
x: true,
22+
foo: 'two'
23+
});
24+
25+
assert.htmlEqual(target.innerHTML, `
26+
<p>green two</p>
27+
`);
28+
}
29+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<:Component {x ? Green : Red} bind:foo />
2+
3+
<script>
4+
import Green from './Green.html';
5+
import Red from './Red.html';
6+
7+
export default {
8+
data() {
9+
return {
10+
Green,
11+
Red
12+
};
13+
}
14+
};
15+
</script>

0 commit comments

Comments
 (0)