2016-05-18 13 views
1

私は、Ember、Angular、Reactなどのコンポーネントをページにロードされるものに応じて登録する必要があるモジュールで作業しています。Ember - 動的にコンポーネントを作成する

では、私はちょうど

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

を行うことができます反応するが、どのように私はエンバーと同じことを行うことができますか?私は次のようなものを探しています:

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

これは可能ですか?念頭に置いて私はのEmber Appにアクセスすることはできません。

答えて

0

これは良い質問です。ちょっと打ち砕くには、動的にしたい:

  1. Ember.Componentのサブクラスを作成します。
  2. コンポーネントのテンプレートをコンパイルします。
  3. コンポーネントをアプリケーションのグローバル名前空間に登録します。

1.の回答はすでにあなたの質問にあります(Ember.Component.extend)。 2. herehereなど、他の場所で回答されています。

EmberのDependency Injectionコンテナにregisterを使ってみることをお勧めします。またはその目標を具体的に検索することをお勧めします。


が、これはエンバー「ハッピーパス」には本当にない場合がありますのでご了承 - パフォーマンス上の理由から、エンバー(およびグリマー)は、主にプリコンパイルされたテンプレートに焦点を当てています。

関連する問題