Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改另一个组件属性的值?(2)_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 如何更改另一个组件属性的值?(2)

Javascript 如何更改另一个组件属性的值?(2),javascript,angular,typescript,Javascript,Angular,Typescript,我有一个鬃毛页面,页面上有一个按钮,可以触发弹出框: <i class="material-icons" (click)="openPopUp()">info</i> 然后我将showPopUp的值发送到PopupComponent(其单独的组件): 但实际需要设置为false的是第一个组件中的showPopup,如何正确设置其值 谢谢在ComponentB中,您应该做的是在结束时引发事件 @Output() onClose: EventEmitter<boo

我有一个鬃毛页面,页面上有一个按钮,可以触发弹出框:

  <i class="material-icons" (click)="openPopUp()">info</i>
然后我将
showPopUp
的值发送到PopupComponent(其单独的组件):

但实际需要设置为false的是第一个组件中的
showPopup
,如何正确设置其值


谢谢

在ComponentB中,您应该做的是在结束时引发事件

@Output() onClose: EventEmitter<boolean> = new EventEmitter();


public closePopUp() {
    this.onClose.emit(true);
}
@Output()onClose:EventEmitter=neweventemitter();
公共关闭窗口(){
this.onClose.emit(true);
}
现在,家长只需订阅此活动:

<div *ngIf="showPopup === true">
  <pop-up-info-box [componentBPopUp]="showPopup" (onClose)="showPopup = false">   
  </pop-up-info-box>
</div>

在ComponentB中,您应该做的是在关闭时引发事件

@Output() onClose: EventEmitter<boolean> = new EventEmitter();


public closePopUp() {
    this.onClose.emit(true);
}
@Output()onClose:EventEmitter=neweventemitter();
公共关闭窗口(){
this.onClose.emit(true);
}
现在,家长只需订阅此活动:

<div *ngIf="showPopup === true">
  <pop-up-info-box [componentBPopUp]="showPopup" (onClose)="showPopup = false">   
  </pop-up-info-box>
</div>

对于您的问题,父组件可以使用

@ViewChild('popup')
弹出:ModalComponent;
this.popup.doStuff();
但是您的具体问题可以通过componentBPopUp和showPopup字段之间的双向数据绑定来解决(请参阅)


另一个选项是使用EventMiter将更改通知给其他组件(请参见)

对于您的问题,父组件可以使用

@ViewChild('popup')
弹出:ModalComponent;
this.popup.doStuff();
但是您的具体问题可以通过componentBPopUp和showPopup字段之间的双向数据绑定来解决(请参阅)


另一个选项是使用EventMiter通知其他组件更改(请参见)

您应该在componentBPopUp中使用@Output

例如:

  close(){
    this.showPopup = false;
  }
您尝试执行的操作示例:


祝你好运

您应该在componentBPopUp中使用@Output

例如:

  close(){
    this.showPopup = false;
  }
您尝试执行的操作示例:

祝你好运

  close(){
    this.showPopup = false;
  }