取消订阅行为主题

时间:2017-06-23 10:45:42

标签: angular

在标题中,我需要取消订阅组件中的行为主题。行为主题位于全局静态服务中。继承人

中的行为主体
private _salesPlanId = new BehaviorSubject<number>(undefined);
salesPlanId$ = this._salesPlanId.asObservable();
changeSalesPlanId(data) {
    this._salesPlanId.next(data);
}

我开始在lifececyle OnInit中的组件内订阅它:

ngOnInit() {

   this.mySubscription = this.service.salesPlanId$.subscribe(id => {
        if (id === undefinied){
           this.service.getId.subscribe(id => {
                 this.service.changeSalesPlanId.next(id);
           }
         }else{
               this.id = id;
              }
        }
    });

问题是我想要销毁组件以取消订阅元素和 把这个行为再次变为未定,我这样做:

ngOnDestroy() {
    this.mySubscription.unsubscribe();
    this.flex.changeSalesPlanId(undefined);
}

但是在usubscribe之后OnDestroy我改变了一个salesPlan Inside服务,我看到这个组件恢复了未定值,并再次启动id?有没有走路?

0 个答案:

没有答案