如何更新/更改BehaviorSubject <object>的值?

时间:2019-07-31 12:53:04

标签: angular rxjs

给出

BehaviorSubject<object> smartObject = new BehaviorSubject<object>(
    {key1: value1,
     key2: { key2_1: value2_1, key2_2: value2_2}, 
    ...}
); 

如何更改每个值以及如何添加新键?

像这样:

    notsmartObject.key1 = value24; 
    notsmartObject.key2.key2_1 = xy; 
    notsmartObject['newKey'] = newValue; 

我知道.next(),但是我不想复制整个对象,添加/更改我想要的任何内容并将其放入下一个函数中。 在我看来,这有点低效和冒险,因为当前的smartObject可以在.next()与新Object一起执行之前被覆盖。 这就是我的意思:

let newObject = smartObject.getValue(); 
newObject.key1 = value24; 
...
smartObject.next(newObject); 

1 个答案:

答案 0 :(得分:1)

如果您要的是这样,您可以这样:

root_url = %(protocol)s://%(domain)s:%(http_port)s/grafana