是否可以在主机元素上设置* ngIf?

时间:2016-01-03 15:01:58

标签: typescript angular

我希望每次更改局部变量时都运行ngAfterViewInit()。我想过使用* ngIf来触发这个功能,但是我不知道如何从组件本身设置它。 HostBinding不用说,不起作用。

以下简要说明了我想要实现的目标:http://plnkr.co/edit/tflsWzsRDVNeMPjmTokF?p=preview

编辑:我之前的解释有点误导。 *ngIf是必不可少的,因为如果其局部变量为false,我根本不想显示组件。但是,如果它是true,我想将此组件中div的宽度和高度传递给service。

1 个答案:

答案 0 :(得分:0)

您可以将变量更改为getter / setter并在每次调用setter时调用ngAfterViewInit()或任何其他方法(并且新值与旧值不同)?

  private _show: boolean = false;

  get show():Boolean {
    return this._show;
  }
  set show(newVal:Boolean) {
    if(newVal != this._show) {
      this._show = newVal;  
      ngAfterViewInit();;
    }
  }

  ngAfterViewInit() {