存储一个可以在app angular 5上随时更新的对象

时间:2018-05-31 03:52:53

标签: javascript angular typescript web

我似乎无法找到解决这个问题的最佳解决方案,因为我有一个api调用,这让我成为事实的对象......

facts: {
    name: 'james',
    age: 23,
    address: '123 fake st'
}

我希望能够在我的应用程序中使用它,但我也希望能够更新单个属性,就像我按下一个按钮我希望能够更新该对象上的名称

所以就像我可以做这样的事情

storeFact() {
   this.service.facts.name = 'nick'
}

然后对象将在服务中更新,看起来像这样..

facts: {
   name: 'nick',
   age: 23,
   address: '123 fake st'
}

然后很明显我可以再次在我的应用中调用{{facts.name}},然后返回nick

但不仅仅是我希望能够添加新的键和值,所以我可以有一个按钮来执行此操作。

newFact() {
   this.service.facts.hobbies = 'swimming';
}

我不完全确定这是如何工作的,如果我调用api并存储返回的结果,这是共享服务中的fact对象,我可以添加,获取和更改键值对吗?

如果我使用BehaviorSubject上的经典observable.next()路线,那么在我传入this.service.facts.name = 'nick'

时会破坏当前对象

任何帮助将不胜感激

由于

1 个答案:

答案 0 :(得分:1)

它不是最优雅的解决方案,这是早期版本的角度,但应该仍然有效。您可以使用本地存储来存储变量并在整个应用中访问它。在你的情况下

    this.facts = JSON.parse(localStorage.getItem('facts'));
    this.facts.hobbies = 'swimming';
    localStorage.setItem('facts', JSON.stringify(this.facts));