私たちは Angular プロジェクトで動的ディレクティブを回避するために多くの作業を行っています。あると便利なものの 1 つは、多くの異なるタイプの同様のオブジェクト (メッセージなど) をリストできる汎用ディレクティブを持つ方法です。 、ユーザー、コメントなど)、オブジェクトのタイプに基づいて特定のディレクティブに委譲します。
このディレクティブを呼び出しobject-list
ます。適切に動作させることができれば、多くの異なるディレクティブに委任されることを願っています。
object-list
私たちが取り組む必要がある主な問題は、このディレクティブが提供されたディレクティブがシステムに存在するかどうかです。これをチェックする方法は$compile
、ターゲット ディレクティブに対して を発行し、それをスコープにリンクし、その HTML コンテンツ (例: var tmpElement = $compile('<div my-message'></div>')(scope);
) をチェックすることです。これは、 target ディレクティブのテンプレートがtemplate
オプションによって参照されている場合に機能するように見えますが、代わりに を指定しようとするとtemplateUrl
、HTML コンテンツが空になります。
これは、templateUrl
アプローチが整ったプランカーです(機能していません)。コメントアウトしてtemplate
行のコメントを解除すると、アラートが表示されます。
http://plnkr.co/edit/wD4ZspbGSo68v4eRViTp
ディレクティブの存在を確認する別の方法はありますか? 認めますが、これは少しハックのようです。