diff --git a/compiler/generate/index.js b/compiler/generate/index.js index 347d7062cf..fa9dc4f578 100644 --- a/compiler/generate/index.js +++ b/compiler/generate/index.js @@ -489,6 +489,8 @@ export default function generate ( parsed, source, options ) { state = {}; }; + this._parent = options.parent; + ${initStatements.join( '\n\n' )} } ` ); diff --git a/compiler/generate/visitors/Element.js b/compiler/generate/visitors/Element.js index 8f5bf5f861..2b4e46acc0 100644 --- a/compiler/generate/visitors/Element.js +++ b/compiler/generate/visitors/Element.js @@ -58,7 +58,7 @@ export default { var ${name} = new template.components.${node.name}({ target: ${generator.current.target}, - parent: component, + parent: component._parent || component, data: ${name}_initialData }); ` ); @@ -66,7 +66,7 @@ export default { local.init.unshift( deindent` var ${name} = new template.components.${node.name}({ target: ${generator.current.target}, - parent: component + parent: component._parent || component }); ` ); } diff --git a/test/compiler/if-block-widget/Widget.html b/test/compiler/if-block-widget/Widget.html new file mode 100644 index 0000000000..bbd986fcb1 --- /dev/null +++ b/test/compiler/if-block-widget/Widget.html @@ -0,0 +1 @@ +

Widget

diff --git a/test/compiler/if-block-widget/_config.js b/test/compiler/if-block-widget/_config.js new file mode 100644 index 0000000000..6c42237db4 --- /dev/null +++ b/test/compiler/if-block-widget/_config.js @@ -0,0 +1,13 @@ +export default { + skip: true, + data: { + visible: true + }, + html: 'before\n

Widget

\nafter', + test ( assert, component, target ) { + component.set({ visible: false }); + assert.equal( target.innerHTML, 'before\n\nafter' ); + component.set({ visible: true }); + assert.equal( target.innerHTML, 'before\n

Widget

\nafter' ); + } +}; diff --git a/test/compiler/if-block-widget/main.html b/test/compiler/if-block-widget/main.html new file mode 100644 index 0000000000..5e2a3859b4 --- /dev/null +++ b/test/compiler/if-block-widget/main.html @@ -0,0 +1,14 @@ +before +{{#if visible}} + +{{/if}} +after + diff --git a/test/compiler/onrender-fires-when-ready-nested/ParentWidget.html b/test/compiler/onrender-fires-when-ready-nested/ParentWidget.html new file mode 100644 index 0000000000..1ab8608eff --- /dev/null +++ b/test/compiler/onrender-fires-when-ready-nested/ParentWidget.html @@ -0,0 +1,11 @@ +{{#if foo}}{{/if}} + + diff --git a/test/compiler/onrender-fires-when-ready-nested/Widget.html b/test/compiler/onrender-fires-when-ready-nested/Widget.html new file mode 100644 index 0000000000..10de81c6d4 --- /dev/null +++ b/test/compiler/onrender-fires-when-ready-nested/Widget.html @@ -0,0 +1,9 @@ +

{{inDocument}}

+ + diff --git a/test/compiler/onrender-fires-when-ready-nested/_config.js b/test/compiler/onrender-fires-when-ready-nested/_config.js new file mode 100644 index 0000000000..06327ebc4d --- /dev/null +++ b/test/compiler/onrender-fires-when-ready-nested/_config.js @@ -0,0 +1,3 @@ +export default { + html: `

true

\n

true

` +}; diff --git a/test/compiler/onrender-fires-when-ready-nested/main.html b/test/compiler/onrender-fires-when-ready-nested/main.html new file mode 100644 index 0000000000..6ba25d0a68 --- /dev/null +++ b/test/compiler/onrender-fires-when-ready-nested/main.html @@ -0,0 +1,16 @@ +
+ + +
+ +