Skip to content

Commit e64ee93

Browse files
authored
Merge pull request #666 from sveltejs/gh-665
only run create() for new if blocks
2 parents 3269ed4 + de2e059 commit e64ee93

File tree

3 files changed

+69
-2
lines changed

3 files changed

+69
-2
lines changed

src/generators/dom/visitors/IfBlock.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,10 @@ function simple(
173173
`
174174
: branch.hasIntroMethod
175175
? deindent`
176-
if ( !${name} ) ${name} = ${branch.block}( ${params}, ${block.component} );
177-
${name}.create();
176+
if ( !${name} ) {
177+
${name} = ${branch.block}( ${params}, ${block.component} );
178+
${name}.create();
179+
}
178180
${name}.intro( ${parentNode}, ${anchor} );
179181
`
180182
: deindent`
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
export default {
2+
data: {
3+
threshold: 5
4+
},
5+
6+
html: `
7+
<div>1</div>
8+
<div>2</div>
9+
<div>3</div>
10+
<div>4</div>
11+
<div>5</div>
12+
`,
13+
14+
test ( assert, component, target, window, raf ) {
15+
const divs = target.querySelectorAll('div');
16+
17+
assert.equal(divs[0].foo, 0);
18+
19+
raf.tick(100);
20+
assert.equal(divs[0].foo, 1);
21+
22+
component.set({ threshold: 4 });
23+
assert.equal( divs[4].foo, 1 );
24+
25+
raf.tick( 200 );
26+
assert.htmlEqual(target.innerHTML, `
27+
<div>1</div>
28+
<div>2</div>
29+
<div>3</div>
30+
<div>4</div>
31+
`);
32+
33+
component.set({ threshold: 3 });
34+
assert.equal( divs[3].foo, 1 );
35+
36+
raf.tick( 300 );
37+
assert.htmlEqual(target.innerHTML, `
38+
<div>1</div>
39+
<div>2</div>
40+
<div>3</div>
41+
`);
42+
43+
component.destroy();
44+
}
45+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{{#each [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] as number}}
2+
{{#if threshold >= number}}
3+
<div transition:foo>{{number}}</div>
4+
{{/if}}
5+
{{/each}}
6+
7+
<script>
8+
export default {
9+
transitions: {
10+
foo: function ( node ) {
11+
return {
12+
duration: 100,
13+
tick: t => {
14+
node.foo = t;
15+
}
16+
};
17+
}
18+
}
19+
};
20+
</script>

0 commit comments

Comments
 (0)