レンダリングされた後、私は私のcomponent
に次のコードを持っている:私は二度私のボタンをクリックした場合(、Angular4再トリガサブスクリプションViewChildが再び
<button type="button" (click)="isFormShown = !isFormShown">CLICK</button>
<form #form="ngForm" *ngIf="isFormShown">
...
</form>
:
@ViewChild('form') form: NgForm
isFormShown = true
ngAfterViewInit(): void {
this.form.valueChanges
.subscribe(() => {
console.log("form has changed")
})
}
と私のテンプレート内に私のフォームは消えて再び現れます)。私のサブスクリプションがまだ存在するようには見えません。確かに、私は自分のフォームの入力を弄っているし、何も記録されていない。 もう一度やり直すには何が必要ですか?なぜなら*ngIf="isFormShown"
である
フォームが表示されているため、最初のサブスクリプションが有効です。ただし、ボタンをクリックすると消えます。呼び出す(クリックする)イベントを作成し、そこで購読ロジックを配置する必要があります。 –
フォームの値をクリアしたい場合や、フォームを隠すためにbtnをクリックする前にユーザーが入力した値を持っていればいいですか? – Dhyey