我遇到一个困扰我的问题。我有一个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并显示。
答案 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标记中。