我有一个oberservable,这是一个数组:
items$: Observable<CarClassification[]>;
我正在尝试将其转换/转换为一个新的Observable,其中包含一个SelectItems数组,用于下拉框 .
get SelectItems(): Observable<SelectItem[]> { ...
然后我可以将其设置为下拉框的数据源,并且,如果项目$中的任何项目被修改,删除或添加了新项目,则SelectItems数组也会更改 . 我遇到的问题是我有几十个需要以这种方式定义的数组(更大对象的标准) . 我尝试过的所有东西,如果有效的话,都太慢了(订阅了observable并推送到一个新的阵列),我正在寻找一种更无缝的方式 .
我是RxJS的新手,我尝试了一些不同的东西,但似乎都没有 . 我搜索的StackOverflow和我想象的一样多 .
CarClassification有两个属性, Id 和 Name ,我想制作SelectItem的 value 和 label .
我知道我可以将observable映射到数组:
items$.map((items) => { ...
但是如何正确地迭代项目中的每个项目,并为每个项目返回一个新的SelectItem一直在逃避我 .
1 回答
如果你有一个发射阵列的Observable,你总是可以用
concatAll()
解压缩它,然后再次打包它,例如:但是您根本不需要使用Rx来转换数组:
现在你有
Observable<SelectItem[]>
.