问题描述
我有一个可观察的
someObjs$ = this.getData().pipe(
map((data: Data) => ({
a: true,
b: true,
c: true,
})
),
如果用户在某处设置的标志为false,那么即使将Observable展开到模板中后,即使该键不存在,我也希望始终将其返回true。
例,
someObj$ | async as obj
{{ obj['d'] }} // true
1楼
我不确定是否要使用任何键( obj['foo'] , obj['bar']或预定义键obj['d']但我假设使用预定义键。
您可以在pipe方法中使用startWith运算符。
创建一个新的Data实例,并使用spread( ... )运算符分配d属性。
const newData = new Data();
someObjs$ = this.getData().pipe(
startWith({...newData, d: true}),
map((data: Data) => ({
a: true,
b: true,
c: true,
})
)
或者在Data类中,您可以分配默认值。
然后,您将不需要传播运算符。
您可以将startWith与默认Data实例一起使用。