detach each block iterations with no update method - fixes #1795

pull/1798/head
Rich Harris 6 years ago
parent 1deb25e184
commit ece6aeb892

@ -462,7 +462,7 @@ export default class EachBlockWrapper extends Wrapper {
`;
} else {
destroy = deindent`
for (; #i < ${iterations}.length; #i += 1) {
for (${this.block.hasUpdateMethod ? `` : `#i = ${this.vars.each_block_value}.${length}`}; #i < ${iterations}.length; #i += 1) {
${iterations}[#i].d(1);
}
${iterations}.length = ${this.vars.each_block_value}.${length};

@ -0,0 +1,27 @@
export default {
data: {
things: [0, 0, 0, 0, 0]
},
html: `
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
`,
test(assert, component, target) {
console.group('set');
component.set({
things: [0, 0, 0]
});
console.groupEnd();
assert.htmlEqual(target.innerHTML, `
<p>0</p>
<p>1</p>
<p>2</p>
`);
}
};

@ -0,0 +1,3 @@
{#each things as _, i}
<p>{i}</p>
{/each}
Loading…
Cancel
Save