Merge branch 'fix_bind_with_event_in_each' of https://github.com/stalkerg/svelte into stalkerg-fix_bind_with_event_in_each

pull/1744/head
Rich Harris 7 years ago
commit b7e07c5389

@ -399,6 +399,7 @@ export default class Element extends Node {
if (eventHandlerOrBindingUsesContext) {
initialProps.push(`ctx`);
block.builders.update.addLine(`${node}._svelte.ctx = ctx;`);
block.maintainContext = true;
}
if (initialProps.length) {

@ -0,0 +1,39 @@
export default {
data: {
cats: [
{
name: "cat 0",
checked: false,
},
{
name: "cat 1",
checked: false,
},
],
},
html: `
<input type="checkbox">
<input type="checkbox">
`,
test(assert, component, target, window) {
const { cats } = component.get();
const newCats = cats.slice();
newCats.push({
name: "cat " + cats.length,
checked: false,
});
component.set({ cats: newCats });
let inputs = target.querySelectorAll('input');
assert.equal(inputs.length, 3);
const event = new window.Event('change');
inputs[0].checked = true;
inputs[0].dispatchEvent(event);
inputs = target.querySelectorAll('input');
assert.equal(inputs.length, 3);
}
};

@ -0,0 +1,14 @@
{#each cats as cat (cat.name)}
<input type="checkbox" bind:checked="cat.checked" on:change="someCheck()">
{/each}
<script>
export default {
oncreate() {},
methods: {
someCheck() {
console.log('Check');
}
},
};
</script>
Loading…
Cancel
Save