我的主应用程序组件调度一个操作,该操作从 API 获取数据并将其加载到属性config
中的存储中,然后在页面加载时,我的表单组件从存储中选择配置,并将其绑定到子组件,然后子组件与async pipe
一起显示它。我看过的其他帖子说问题在于该值不是可观察的,但我知道我的值是,因为我已经订阅了它,并且可以记录对象数组。我只是无法让它通过异步管道。
来自 config 的数据对象是 SATOPTIONS 的数组SatOption[]
export interface SatOption {
satelliteId: number;
satelliteName: string;
channels: Channel[];
}
父 ngOnInit
this.config$ = this.store.select((state:any) => state.appReducer.config)
this.config$.subscribe(slice => console.log(slice))
子模板
<select [formControl]="satControl">
<option
class="hide-select"
value="default"
disabled
>
pick a satellite
</option>
<option
*ngFor="let sat of (config$ | async)"
[value]="sat.channels"
[attr.set]="sat"
>
{{ sat.satelliteName }}
</option>
</select>
我的控制台.log:
Array(3) [ {…}, {…}, {…} ]
attr.set 绑定显示[object Object]
我真的很茫然,我尝试订阅和重新分配并得到相同的结果。我做错了什么?
在不知道完整代码的情况下,我会假设您将数组(而不是可观察数组(传递给您的子模板,这意味着您不再需要使用async
管道。
父母:
<my-child [items]="items | async"></my-child>
孩子:
<li *ngFor="let item of items">{{ item.name }}</li>