Javascript 存储可在app angular 5中随时更新的对象

Javascript 存储可在app angular 5中随时更新的对象,javascript,angular,typescript,web,Javascript,Angular,Typescript,Web,我似乎找不出最好的解决方案,比如说我有一个api调用,可以让我得到这样一个事实对象 facts: { name: 'james', age: 23, address: '123 fake st' } 我希望能够在我的应用程序中使用它,但我也希望能够更新单个属性,比如,如果我按下一个按钮,我希望能够更新该对象上的名称 所以我可以做这样的事情 storeFact() { this.service.facts.name = 'nick' } 然后对象将在服务中更新,如

我似乎找不出最好的解决方案,比如说我有一个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并将返回的结果(事实对象)存储在共享服务中,我可以添加、获取和更改键值对吗

如果我在
上使用经典的
行为主体
可观察的
路径,那么当我通过
this.service.facts.name='nick'
时,它不会破坏当前对象

任何帮助都将不胜感激


谢谢

这不是最优雅的解决方案,这是angular的早期版本,但应该仍然有效。您可以使用本地存储来存储变量并通过应用程序访问它。就你而言

    this.facts = JSON.parse(localStorage.getItem('facts'));
    this.facts.hobbies = 'swimming';
    localStorage.setItem('facts', JSON.stringify(this.facts));
可能重复的