我在下面的代码我component
:Angular4重新触发一个ViewChild再次渲染后订阅
@ViewChild('form') form: NgForm
isFormShown = true
ngAfterViewInit(): void {
this.form.valueChanges
.subscribe(() => {
console.log("form has changed")
})
}
,并在我的模板:
<button type="button" (click)="isFormShown = !isFormShown">CLICK</button>
<form #form="ngForm" *ngIf="isFormShown">
...
</form>
,如果我在我的按钮点击两次,(所以我的表单会消失并重新出现)。它似乎并不像我的订阅仍然存在。事实上,我正在摆弄我的表单输入,而且我没有记录任何东西。 我需要做些什么才能使其重新工作?
您的第一次订阅是有效的,因为窗体是可见的。但是,当您单击该按钮时,它会消失。您应该创建一个方法,您可以调用(单击)事件并将订阅逻辑放在那里。 –
您是否还想在表单值重新出现时清除表单值?还是可以在用户点击btn隐藏表单之前填入值? – Dhyey