Angular 2 应用程序:如何加载变量类型 Subject 的值 (Typescript)

20 浏览
0 Comments

Angular 2 应用程序:如何加载变量类型 Subject 的值 (Typescript)

我正在开发一个Angular2应用程序,我正在将数据从服务加载到我的组件中作为一个主题。

public  type1Choisi: any;
constructor(
  public formeService: FormeService, ...) {
    this.formeService._type1.subscribe(type1 => this.type1Choisi = type1);
}

我在HTML视图中完美地使用它的值:

选择的Type 1是:{{type1Choisi}}

但是我无法在我的组件的ts文件中使用它来进行相同的处理:

if (this.type1Choisi === 102){  //这里type1Choisi没有给出值
  ParamService.dormant.Porte_ON = 1.00;
}

我在服务中声明我的数据为主题

public _type1 = new Subject();

有人可以告诉我如何在我的视图和ts代码中都使用我的主题吗?

0
0 Comments

问题出现的原因是,通过订阅一个Subject来获取其值,但是无法直接加载该值。解决方法是使用观察者(observables)/主题(subjects)来接收事件和错误,但无法直接加载值。可以通过在服务中缓存最新值,并使用do操作符将其转存到另一个变量中,然后在需要使用该值时进行处理。具体的解决方案可以参考这个stackoverflow链接:http://stackoverflow.com/questions/35992877/35993192#35993192

0