別のコンポーネント(Comp
)を含むコンポーネント(App
)があります。 App
は、データベースから文字列コンテンツを取得し、@Input()
〜Comp
に転送します。この文字列の内容は、このコンテンツをレンダリングすることになっていると、いくつかのイベントリスナーを追加することになっているComp
でAngular2:子コンポーネントのViewChildへの参照を取得する方法
Some text before <a>Click</a> Some Text after
のようなHTMLタグを含めることができます。そのため、このコンテンツは[innerHtml]
を使用して追加されます。 [innerHtml]
では(click)
が削除されているので、a
タグへの参照が必要であり、イベントリスナーはaddEventListener
で追加されるはずです。しかし、コンポーネントにElementRef
にはnativeElement
が含まれていないため、a
タグを参照する方法が見つかりません。
このプランナーを実行するにはどのような方法が最適ですか? https://plnkr.co/edit/xVUu0LJ02YVnBO25Zr4j?p=preview
私が言ったように、コンテンツは外部のデータベースから来ています。私は 'a'タグを編集できません。イベント処理は非常に汎用的で、コンポーネントの使用場所に依存します。そのため、イベントは「アプリケーション」から来て、Compからではないことが必要です。 –
あなたの要件を誤解して申し訳ありません。あなたは@echonaxの答えを見ることができますが、彼が言ったように、 "Angular2で直接DOMへのアクセスは(強く)推奨されていません"。コードの「清潔さ」のためだけでなく、パフォーマンスや副作用の問題についても。たぶんあなたの文字列が十分に規則的であれば、htmlを書き直すことができますか?それに値するかもしれません。 – Pac0
このプロジェクトでは直接DOMへのアクセスも強く推奨されていないため、別の方法を見つける必要があります。現在、私は親コンポーネントにビューを公開しようとしています。 –