Angular2:取消订阅主机监听器

时间:2016-04-11 17:49:27

标签: typescript angular

如果我使用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;
}

1 个答案:

答案 0 :(得分:1)

您无法取消订阅主持人监听器。如果您需要取消订阅,则需要强制订阅。

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