ディレクティブに渡す入力は、htmlファイル内に正しく表示されますが、typescriptファイル内の値は取得されません。 typescriptファイルの中でどのようにアクセスできますか?ここtypescriptファイル内のディレクティブの入力値を取得
は一例であり:
Iは次のようにtest-info.ts
に定義されているディレクティブを有する:test-info.html
内部
@Component({
selector: 'test-info',
templateUrl: 'test-info.html'
})
export class TestInfo {
@Input('location') location;
constructor(...) {
console.log('this.location: ' + this.location); //------> Prints null
}
私が持っている:
{{location}}
I内部このディレクティブを使用し別のhtml user.html
ファイル:
<test-info [location]='location'> </test-info>
場所はuser.html
に正しく表示されますが、.tsファイルのconsole.logコマンドではnullが出力されます。
編集: user.ts
では、ロケーションはAjaxコールで割り当てられます。おそらくこれがコンストラクタまたはngOnInit()がこの値を逃す理由です。しかし、それが更新されたらどうしたらいいですか?
あなたは、コンストラクタでの入力を使用することができなかった、ためです。 'ngOnInit()'でこれらの入力にアクセスできます。ディレクティブのデータバインドされたプロパティが初めてチェックされ、その子がチェックされる直前に呼び出されます。ディレクティブがインスタンス化されると、一度だけ呼び出されます。 – alexmac
私は 'ngOnInit()'と 'ngAfterViewInit()'と同じ結果を得ます。 – Ari