Angular 1 で私が抱えている最大の問題は、(オブジェクト指向の意味で) ディレクティブを拡張するのがいかに難しいかということです。
たとえばinput[number]
、カスタム ウィジェットでディレクティブを再利用することはほとんど不可能であり、すべての検証と型変換コードを再実装する必要がありました。
Angular 2 コンポーネントはクラスとして実装されているため、簡単に拡張できるようです。ただし、@Component
非常に具体的なセレクターなどの注釈も含まれているため、それらを完全にオーバーライドできるかどうかはわかりません。
では、Angular 2 ディレクティブは実際に拡張可能ですか?
編集:
さて、「拡張可能」はクラスを拡張する必要はありません。複数の既存のディレクティブで構成される新しいディレクティブを作成することができます。このアプローチに関する私の質問は、子ディレクティブを適用するメカニズムは何ですか?
(@Component
クラスは、子にディスパッチできるメソッドを持つ従来の OO クラスではありません。アノテーションの背後にあるものによって完全に駆動されるフィールドとコールバックのコンテナにすぎません。)