3

我有这个变量,它控制对话框是否显示,它在第一次工作,但不是在第二次工作,发出执行但不再调用接收函数。

父类:

  isLogin :boolean ;

  constructor(...){
    this.isLogin = false;
}
  receiveNotification(notification: boolean): void {
    this.isLogin = notification;
  }

父 html:

<login-dialog   *ngIf="!isLogin"  name="{{name}}" (notify)="receiveNotification($event)"></login-dialog>

在子类中:我有一个函数,当触发调用发出和发出确实被调用时,它不会第二次触发父级上的函数

@Output() notify = new EventEmitter<any>();

  exampleFunction(){
 this.notify.emit(true);
}

我想这可能与 ngIf 相关,但不确定,这里有什么问题?

4

2 回答 2

4

这可能是因为您正在发出一个真值,但在您正在检查的父模板上!true哪个是假的。

根据您当前的逻辑,您应该发出一个错误值或将条件更改*ngIf="isLogin"为父模板中的。

于 2019-07-25T10:59:59.723 回答
2

尝试使用 hidden 而不是 ngIf,因为 ngIf 从 DOM 中删除组件但 hidden 只是隐藏它。

<login-dialog   [hidden]="isLogin"  name="{{name}}"...></login-dialog>
于 2019-07-25T11:27:22.963 回答