【发布时间】:2021-11-20 15:32:03
【问题描述】:
希望有人可以在这个问题上帮助我。
我在 Angular 中有一个组件,我正在尝试将对象列表发送到模态组件以显示在表格中,但我不断收到标题中列出的错误。控制台记录数据,它显示它正在以数组的形式接收它,但它仍然不会去。
首先这是我从服务中获取数据的方式:
计划服务
return this.http.get<BasePartFormatted[]>(
`$apiurl`
);
}
然后在 ngOnInit 中,这就是我为表绑定设置部件列表的方式:
零件清单组件 TS
partList$: Observable<BasePartFormatted[]>;
selectedParts: BasePartFormatted[] | null; <-- for primeng selection bind
ngOnInit: void {
this.partList$ = this.planService.getParts(this.flowID);
}
为了呈现表格中的列表,我使用异步管道。此外,我将primeng 用于框架,并将列表中的选定项目用于组件模式。根据primeng文档,所选项目被放入一个n数组中。
零件列表 HTML
<p-table
#partsList
[value]="partList$ | async"
[(selection)]="selectedParts"
>
<ng-template #modal_content_go let-modal>
<modal-form
[selectedParts]="selectedParts"
></modal-form>
</ng-template>
在模态组件中,我尝试将其作为@Input 引入:
模态组件 TS
@Input() selectedParts: BasePartFormatted[];
并尝试在模态html中呈现:
模态 HTML
<p-table
#selectedParts
[value]="selectedParts"
>
...
<ng-template pTemplate="body" let-part>
<td>{{ part.item1}}</td>
<td>{{ part.item2}}</td>
<td>{{ part.item3}}</td>
<td>{{ part.item4}}</td>
</ng-template>
为了检查 selectedParts 实际上是什么,我在 Modal html 上创建了一个按钮来 console.log 输出,它说它是两个对象的数组: Console.log showing an array of two objects
我已经尝试将列表转换为另一个 observable,因为它适用于初始列表,但由于某种原因我遇到了异步管道问题。
已经为此苦苦挣扎了一分钟,希望获得有关如何解决此问题的建议。 感谢您提供任何帮助或想法。
【问题讨论】:
标签: arrays angular observable