2017-10-18 42 views
0

角度を使用して、コアアプリケーション用の素敵なコンポーネントフロントエンドを構築しています。我々は、これらのコアコンポーネントの非常に小さなカスタマイズを要求する複数のクライアントを持っています。私はNPMパッケージでコアコードを保存し、各クライアントアプリケーションのコンポーネントを拡張することでこれらのわずかな変更を加えたいと思います。同じセレクタでコンポーネントを拡張する - 角度2 /角度CLI

これを行うには、子コンポーネントを拡張する必要がありますが、同じセレクタを保持する必要があります(そうでなければ、各親コンポーネントを変更する必要があります)。

これを行うには、aot = falseビルドで元のコンポーネントを拡張コンポーネントにインポートし、templateUrlのnode_modulesへの相対リンクを使用します。次に、app.moduleに拡張コンポーネントを宣言し、app.moduleから元のコンポーネントを削除します(セレクタは競合しません)。

これはaot = falseですが正常に動作しますが、実際にはビルド時に元のコンポーネントの「クラスでモジュールを特定できません」というエラーが発生します。

あるコンポーネントを別のコンポーネントから拡張する方法はありますか?セレクタを同じに保ちながらも、AOTコンパイルのメリットはありますか?

+1

'@Component()'アノテーションのないベースクラスを使用して、それらを具体的なインプリメンテーションに追加することができます。 –

答えて

0

戦略を変えずに目標を達成できるかどうかはわかりません(selector-conflictsをご覧ください)。

個人的には、コンポーネントの正しい実装を提供する顧客クラス(Injection Beyond Classes)と組み合わされたdynamic component loaderメカニズムを個人的に使用しようと考えています。そうでなければデフォルトのものです。

もちろん、コンポーネントには異なるセレクタがあります。

関連する問題