灰烬 - 动态创建组件

时间:2016-05-18 18:59:43

标签: javascript ember.js

我正在开发一个模块,需要根据加载到页面中的内容注册Ember,Angular,React等组件。

使用React我可以做到

if (window.React) {
  React.createClass(...

但我怎么能和Ember一样呢?我正在寻找类似的东西:

if (window.Ember) {
  Ember.registerComponent('my-component-name', Ember.Component.extend({
    ...
  }));
}

这可能吗?请记住我无法访问页面上的Ember应用程序

1 个答案:

答案 0 :(得分:0)

这是一个很好的问题。为了分解它,我们想要动态地:

  1. 创建Ember.Component
  2. 的子类
  3. 编译该组件的模板。
  4. 在应用程序的全局命名空间中注册该组件。
  5. 1.答案已经出现在您的问题中(Ember.Component.extend)。 2.已在别处回答:例如herehere

    在我的脑海中,我不确定3的密闭答案 - 我建议在Ember的依赖注入容器上使用register,或者专门针对该目标搜索SO。 / p>

    预先警告,这不是真正的Ember“快乐道路” - 出于性能原因,Ember(和Glimmer)主要关注预编译模板。