私は ember アドオンを開発しており、このアドオンを使用するすべてのアプリケーション間で 1 つのルートを共有する必要がありますが、それを実現する方法やそれが可能かどうかさえわかりません。すでにアドオンにルートを追加しましたが、アドオンを使用するアプリケーションにはこれが表示されません。助言がありますか?ありがとう!
2 に答える
はい、可能です。アドオンの app ディレクトリに入れるものは、消費するアプリケーションの app ディレクトリとマージされます。(リソース) ルートを正しいディレクトリに配置します。
一方、ルートをルーター マッピングに追加する必要があります。この目的のためにインスタンス初期化子を使用できます。また、アプリ ディレクトリにインスタンス初期化子を配置することも忘れないでください。イニシャライザ関数で行う必要があるのは、呼び出しだけですRouter.map(...)
。コードは次のようになります。
import Router from '../router';
function initialize(){
Router.map(function() {
this.route('yourroute');
});
}
ps: コードを更新しました
Ember Engines の RFC ディスカッションで、bcardarella は「Ember Engine と Ember Addon の違いは何ですか? 」と尋ねています。ef4 が「アドオンができない唯一のことは、ルートをルーター マップに追加することです」と言うところまで議論が続きます。、(彼は自動的にマージされた方法を意味していると思います)、しかし、代替と例がRFCスレッドで与えられています:
https://github.com/emberjs/rfcs/pull/10#issuecomment-60504581 https://github.com/dockyard/ember-admin#usage
したがって、bcardarella によって提案された回避策を使用できます。または、Ember エンジンを試すこともできます (これもアドオン パッケージで提供されます)。