在Ember 2中编译组件

时间:2017-04-19 15:39:11

标签: javascript google-maps ember.js

我在Ember2中有一个接收参数{{my-component product=p}}的组件。我需要预编译组件并获取生成的html。

我尝试使用ember-cli-htmlbars-inline-precompile但没有成功。 let template = hbs"{{mycomponent product=p }};

1 个答案:

答案 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结束。