Angular2 でコミュニティに貢献する機能を開発する予定です。
この機能は、1 つのディレクティブと 1 つのサービスで構成されます。
この機能を 1 つのモジュール (または複数のモジュール) に最適に詰め込む方法を考えています。
- サービスはグローバルである必要があるため、ユーザーがコア モジュールにインポートする必要があります。遅延ロードされたモジュール内にインポートすることはできません。
- ディレクティブは、ユーザーが使用する必要がある場所にインポートできます
それを機能させるには、2 つの異なるモジュールを作成する必要があります。1 つはサービスを含み、コア モジュールによってインポートおよび再エクスポートする必要があります。ディレクティブは、ユーザーが必要とする場所にインポートするか、共有モジュールでグローバルにインポートできます。
機能を 2 つのモジュールに分割する必要があるため、この構成はあまり好きではありません。
Angular2 がどのように機能するかを知っているユーザーは、問題なくセットアップできるはずですが、それでも、すべてを 1 つのモジュール内にラップすることが可能であることが望ましいでしょうか? これを達成するための現在のベストプラクティスはどれですか?
現在、別の解決策はありません。サービスとディレクティブを同じモジュールに配置すると、ディレクティブをコンポーネントにインポートする必要がある場合、サービスは同じインポートに含まれます。コンポーネントが遅延ロードされている場合、そのコンポーネントのサービスの 2 つ目のコピーが作成されますが、これは正しくありません。
よろしくお願いいたします。