我在Ember2中有一个接收参数{{my-component product=p}}
的组件。我需要预编译组件并获取生成的html。
我尝试使用ember-cli-htmlbars-inline-precompile
但没有成功。 let template = hbs"{{mycomponent product=p }}
;
答案 0 :(得分:0)
首先澄清条款很重要。 编译组件不意味着生成HTML!它基本上意味着生成一个字节码,可以与glimmer运行时一起使用来生成和更新 DOM 。 Ember将从不生成HTML,这一点很重要。
如果您认为ember生成HTML,然后将其提供给浏览器以使您错误。
Ember直接生成DOM,然后跟踪DOM节点以更新DOM并允许实时绑定。
所以基本上在ember中有 no 公共API可以做你想要的。
当然,您可以只渲染组件,并使用this.element.outerHTML
来访问HTML。但请记住,您将失去所有 ember功能,如实时绑定或操作。
这尤其棘手,因为谷歌地图将所有内容呈现为iframe。
ember-wormhole表明可以在主div之外渲染ember内容,但是他们使用私有API,我认为这种可能性以iframe结束。