Ng-Select Selected不会从ngModel更新

时间:2019-08-13 13:00:10

标签: javascript angular typescript angular-ngselect

我遇到一个困扰我的问题。我有一个ng-select。将记录加载到ngModel时,它不会更改ng-select。最奇怪的是,在另一页上,相同的代码也起作用。

我尝试了许多不同的选项,甚至创建了仅用于测试的新数组。还尝试了setTimeout以查看是否清除了选择。

HTML代码

  <label>
    Add a Secondary channel
  </label>
  <br />
  <ng-select placeholder="Select schools" items="schoolsArray" [(ngModel)]="selectedSecondSchools" [multiple]="true" name="secondSchools"
  #secondSchools="ngModel">
  </ng-select>
</div>

组件中的一个函数。将该数组声明为selectedSecondSchools [] = [];

getVodEventGameSecondaryChannels(vodEventId: number, vodEventGameId: number): string[] {
    let schoolIds: string[] = [];

    this.vodEventService
      .getVodEventGameSecondaryChannelsByGameId(vodEventId, vodEventGameId)
      .subscribe((sc: IVodEventGameSecondaryChannels[]) => {
        sc.forEach(gsc => {
          schoolIds.push(
            gsc.schoolId.toString());
        });
      });

    this.eventGame.gameSecondaryChannelIds = schoolIds;
    this.selectedSecondSchools = schoolIds;

    return schoolIds;
  }

返回数据时,需要在ng-select中选择返回的ID并显示。

1 个答案:

答案 0 :(得分:0)

这取决于schoolsArray的类型。在您的情况下,我想schoolsArray是对象列表,而ngModel是字符串数组。 ng-select不知道如何将ngModel的字符串映射到items的对象。

请参阅属性bindValue的文档,以通知ng-select如何将items键绑定到模型。 https://github.com/ng-select/ng-select

总结一下,请将bindValue="id-property-name-in-items"添加到ng-select标记中。