【问题标题】:Angular2: Unsubscribe from host listener [duplicate]Angular2:取消订阅主机监听器[重复]
【发布时间】:2016-04-11 17:49:27
【问题描述】:

如果我使用 host{} 订阅 Angular2 组件中的事件,如何取消订阅该事件?

@Component({
    selector: "foo",
    host: {
        "(window:resize)": "doSomething($event)"
    }
});

我尝试使用 $event 取消订阅,但事件本身从未呈现我想要取消订阅的场景。

目前,我只是做一个穷人的短路,但我更愿意避免短路所涉及的额外检查。

穷人短路:

private _conditionMet:boolean = false;
doSomething(e) {
    if(this._conditionMet) {
        return;
    }
    ...
}

somethingElse() {
    this._conditionMet = true;
}

【问题讨论】:

    标签: typescript angular


    【解决方案1】:

    您不能取消订阅主机监听器。如果您需要取消订阅,则需要强制订阅。

    另见Programmatically (un)register to event with Angular 2

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 2020-10-17
      • 2018-11-26
      • 1970-01-01
      • 2019-08-12
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多