如何在需要时将默认设置为“ BehaviorSubject”-

时间:2018-06-19 14:26:45

标签: angular5 angular-routing

在我的示例中,我有2页,主页和问候。在home页面上,我将一些值设置为BehaviorSubject并订阅以在同一页面上显示数据。

在导航到下一页时,我正在订阅相同的共享库,但是这次,我要求共享库具有默认值。而不是我在home页中设置的数据。

如果是这样,我如何从hello清除并导航到home page页。将共享对象设置为默认值的方法是什么?

根据要求,我需要在所有页面上使用相同的可共享对象,用户可以直接进入所需页面。这样共享对象应该为空。

有人帮我吗?

以下是我的服务摘要:

import {Injectable} from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable()
export class SharedDataService {

  constructor(){}

  staticData:object = {
    "name":"",
    "city":"",
    "pin":""
  }

  sharedData = new BehaviorSubject(this.staticData);
  sharedObserver = this.sharedData.asObservable();

  updateSharedData(object){
    this.sharedData.next(object);
  }

  clearSharedData(){
    this.sharedData.next(this.staticData);
  }

}

Live Demo-导航到问候页面并查看控制台。

0 个答案:

没有答案