【问题标题】:Ember - Dynamically create a componentEmber - 动态创建组件
【发布时间】:2016-09-15 10:30:48
【问题描述】:

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

使用 React 我可以做到

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

但是我怎样才能对 Ember 做同样的事情呢?我正在寻找类似的东西:

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

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

【问题讨论】:

    标签: javascript ember.js


    【解决方案1】:

    这是个好问题。为了稍微分解一下,我们想要动态地:

    1. 创建Ember.Component 的子类。
    2. 编译该组件的模板。
    3. 在应用的全局命名空间中注册该组件。

    1. 的答案已经在您的问题中 (Ember.Component.extend)。 2. 已在其他地方回答:例如herehere

    在我的脑海中,我不确定 3 的无懈可击答案——我建议查看在 Ember 的依赖注入容器上使用 register,或专门为该目标搜索 SO。


    请注意,这并不是 Ember 真正的“幸福之路”——出于性能原因,Ember(和 Glimmer)主要关注预编译模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      相关资源
      最近更新 更多