diff --git a/src/generators/nodes/EachBlock.ts b/src/generators/nodes/EachBlock.ts index 97671c37b0..e75e1722ae 100644 --- a/src/generators/nodes/EachBlock.ts +++ b/src/generators/nodes/EachBlock.ts @@ -75,6 +75,7 @@ export default class EachBlock extends Node { } this.contextProps = [ + `${this.block.listName}: ${this.block.listName}`, `${this.context}: ${this.block.listName}[#i]`, `${this.block.indexName}: #i` ]; diff --git a/test/js/samples/each-block-changed-check/expected-bundle.js b/test/js/samples/each-block-changed-check/expected-bundle.js index 59b104ef0e..97ad53ad14 100644 --- a/test/js/samples/each-block-changed-check/expected-bundle.js +++ b/test/js/samples/each-block-changed-check/expected-bundle.js @@ -212,6 +212,7 @@ function create_main_fragment(component, state) { for (var i = 0; i < comments.length; i += 1) { each_blocks[i] = create_each_block(component, assign({}, state, { + comments: comments, comment: comments[i], i: i })); @@ -244,6 +245,7 @@ function create_main_fragment(component, state) { if (changed.comments || changed.elapsed || changed.time) { for (var i = 0; i < comments.length; i += 1) { var each_context = assign({}, state, { + comments: comments, comment: comments[i], i: i }); diff --git a/test/js/samples/each-block-changed-check/expected.js b/test/js/samples/each-block-changed-check/expected.js index f76e10d943..15a29e2739 100644 --- a/test/js/samples/each-block-changed-check/expected.js +++ b/test/js/samples/each-block-changed-check/expected.js @@ -10,6 +10,7 @@ function create_main_fragment(component, state) { for (var i = 0; i < comments.length; i += 1) { each_blocks[i] = create_each_block(component, assign({}, state, { + comments: comments, comment: comments[i], i: i })); @@ -42,6 +43,7 @@ function create_main_fragment(component, state) { if (changed.comments || changed.elapsed || changed.time) { for (var i = 0; i < comments.length; i += 1) { var each_context = assign({}, state, { + comments: comments, comment: comments[i], i: i }); diff --git a/test/runtime/samples/each-block-array-literal/_config.js b/test/runtime/samples/each-block-array-literal/_config.js new file mode 100644 index 0000000000..bc36cdbe0e --- /dev/null +++ b/test/runtime/samples/each-block-array-literal/_config.js @@ -0,0 +1,19 @@ +export default { + html: ` + + + `, + + test(assert, component, target) { + assert.htmlEqual(target.innerHTML,` + + + `); + + const button = target.querySelector('button'); + const event = new window.MouseEvent('click'); + + button.dispatchEvent(event); + assert.equal(component.get('clicked'), 'racoon'); + }, +}; diff --git a/test/runtime/samples/each-block-array-literal/main.html b/test/runtime/samples/each-block-array-literal/main.html new file mode 100644 index 0000000000..8c55e94612 --- /dev/null +++ b/test/runtime/samples/each-block-array-literal/main.html @@ -0,0 +1,11 @@ +{{#each ['racoon', 'eagle'] as animal}} + +{{/each}} + +