テスト目的でjQuery on changeイベントハンドラに接続しています(ng2に利用可能な(変更)属性があります)。 my.component.tsファイルでは、私は直接my.component.htmlのルータ、アウトレットの下に配置され、選択のために成功し、次のイベントハンドラを実装することができます。入力が* ngIf = "someData"に存在する場合、ngAfterViewInit()を介して入力するイベントハンドラを追加する方法は?
ngAfterViewInit()
{
$('#ddlTest').on('change', function() { alert('jquery change wireup'); });
}
をしかし、本当の私は存在にバインドする必要があります選択
<div *ngIf="searchMetadata">
<select id="ddlTest">
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
メンバ変数は、サービスを呼び出して変数への応答を設定することで取得されます。私の問題は、* ngIfコンテナがngAfterViewInitイベントワイヤ配線ロジックがネストされた選択入力を見つけるのを妨げるように見えることです。私の推測では、ngIfter条件が実現される前にngAfterViewInitがhtmlのselectを探します。どのようにngIfを維持しながら、イベントのワイヤーアップをどのようにすることができますか?
thanks camaron! @Input()searchMetadataを使用しましたが、change.searchMetadataがエラーを返しました: "プロパティsearchMetadataが型 'SimpleChanges'に存在しません。私の実装で何を変更する必要がありますか?また、ngOnChangesトリガーを有効にするために、コンポーネントメンバ変数searchMetadataを "@Input()"で単に飾るだけで十分ですか? – user8334943
私の悪い、更新された –
これを行うための構造化された方法はsetTimeout()よりもありませんか? – user8334943