直接从服务初始化和访问组件属性:Angular2

直接从服务初始化和访问组件属性:Angular2,angular,Angular,即使视图(通过路由)发生了更改,并且组件从DOM中被销毁,我也试图保存一些数据。我采用的方法是将数据存储到单例服务中,并将数据直接存储到服务中,当再次创建组件时,我可以从服务中重新分配组件属性。这种重新分配不知何故不起作用。所以我的问题是,我可以直接从服务中使用这些属性吗?因此,在再次创建组件时,不要执行类似操作: ngOnInit() { this.var1 = this.someService.var1; console.log(this.var1); } 我能做什么 someFu

即使视图(通过路由)发生了更改,并且组件从DOM中被销毁,我也试图保存一些数据。我采用的方法是将数据存储到单例服务中,并将数据直接存储到服务中,当再次创建组件时,我可以从服务中重新分配组件属性。这种重新分配不知何故不起作用。所以我的问题是,我可以直接从服务中使用这些属性吗?因此,在再次创建组件时,不要执行类似操作:

ngOnInit() {
  this.var1 = this.someService.var1;
  console.log(this.var1);
}
我能做什么

someFunction {
  console.log(this.someService.var1);
}
因此,这里我不是将服务中的值分配回组件中的值,而是直接使用服务值进行读取和写入,我还考虑在模板中直接访问它们。这是一种好的做法吗?
另外,为了持久化数据,是否有重用组件路由策略?

为什么这
this.var1=this.someService.var1不工作?是的,您可以从服务中重用这些属性。只需在服务中创建一个函数来返回所需的值,并在再次创建组件时调用它。并在服务中创建另一个函数来设置值,并在需要更新时调用它。@Maximus,因此var1实际上正在处理ngOnInit,但当组件中的另一个值被分配给var1时,它会得到更新,但模板不会呈现更新的值,并且我使用单向数据绑定。但如果我在赋值过程中直接使用服务变量,并在模板中直接读取它们,那么它就可以正常工作。另外,组件var1在控制台中显示了正确的值,但模板没有呈现它,这是奇怪的。它被分配给var1,但模板没有呈现更新的值。这很奇怪,你能创建一个plunker吗?这实际上很奇怪。在接下来的周末,我会把这个放到一个小游戏里。但就目前而言,我想直接使用来自服务的价值观。你对此有何看法@马克西姆斯