Angular - 用结果更新手风琴
Angular - Update Accordion with results
我目前正在尝试通过 returns 数组的搜索来更新手风琴。在第一次加载时,服务会正确显示完整的结果集。但是,当我搜索时,我在控制台中得到了正确的值,但即使使用 ngModel,它也没有被更新。有什么建议吗?
// Snippet of accordion
<ngb-accordion [closeOthers]="true">
<ngb-panel [(ngModel)]="modelData" ngDefaultControl *ngFor="let miller of dataService.data.millers; let millerIndex = index" title="{{ miller.name }} - {{ miller.address }}">
<ng-template ngbPanelContent>
<p>Name: {{ miller.name }}</p>
<p>Address: {{ miller.address }}</p>
<p>
<strong>{{ miller.name }}'s Farms</strong>
</p>
search(farmName: string, millerName: string) {
// service being called and snippet of mapping
const x = this.dataService.data.millers.map(miller => {
this.modelData = x;
// Correctly logs results
console.log(this.modelData);
}
您使用 ngModel 的模型可能没有用,因为您迭代服务以显示数据。
您只需要直接从服务正确更新数据,或者更改组件中使用的 modelData 上的 ngFor 迭代。
推荐第二种。
我目前正在尝试通过 returns 数组的搜索来更新手风琴。在第一次加载时,服务会正确显示完整的结果集。但是,当我搜索时,我在控制台中得到了正确的值,但即使使用 ngModel,它也没有被更新。有什么建议吗?
// Snippet of accordion
<ngb-accordion [closeOthers]="true">
<ngb-panel [(ngModel)]="modelData" ngDefaultControl *ngFor="let miller of dataService.data.millers; let millerIndex = index" title="{{ miller.name }} - {{ miller.address }}">
<ng-template ngbPanelContent>
<p>Name: {{ miller.name }}</p>
<p>Address: {{ miller.address }}</p>
<p>
<strong>{{ miller.name }}'s Farms</strong>
</p>
search(farmName: string, millerName: string) {
// service being called and snippet of mapping
const x = this.dataService.data.millers.map(miller => {
this.modelData = x;
// Correctly logs results
console.log(this.modelData);
}
您使用 ngModel 的模型可能没有用,因为您迭代服务以显示数据。
您只需要直接从服务正确更新数据,或者更改组件中使用的 modelData 上的 ngFor 迭代。
推荐第二种。