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 迭代。

推荐第二种。