###前提・実現したいこと
動的に生成したinputにフォーカスが当たった時にアラートを出したいと考えて入るのですが、
呼び出されません...
templateで定義した、
html
1<button (click)="addInput()">ADD</button>
は正しく呼び出すことができるのですが、
動的に生成した、
html
1<input type="text" (focus)="focusFunc()" />
は動作しません。
ChoromeのDeveloper Toolsで確認したところ、以下のように
なっていました。
html
1<!-- templateで定義 --> 2<button _ngcontent-c0>ADD</button> 3 4<!-- 動的に生成 --> 5<input type="text" (focus)="focusFunc()" />
イベントバインディングがそのまま表示されてしまっているので、
DOMに追加後に何か処理を行わないといけないのでしょうか?
初歩的な質問で申し訳ないのですが、アドバイスをよろしくお願い致します。
###該当のソースコード
typescript
1import { 2 Component, 3} from '@angular/core'; 4 5@Component({ 6 selector: 'app-root', 7 template: ` 8 <div id="hoge"> 9 <button (click)="addInput()">ADD</button> 10 </div> 11 `, 12}) 13 14export class AppComponent { 15 addInput() { 16 let elm = document.getElementById('hoge'); 17 let divElm = document.createElement('div'); 18 divElm.innerHTML = '<input type="text" (focus)="focusFunc()" />'; 19 elm.appendChild(divElm); 20 } 21 22 focusFunc() { 23 alert('focus!!'); 24 } 25}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。