我是Ionic的新手,我尝试使用preselect选项动态地使用离子选择。
我只想编辑一些有价值的个人资料。在这个例子中,我可以设置用户可以说的多种语言。
首先,我使用我的API在我的数据库中设置所有语言,然后将结果设置为var LanguagesData。 My result in console.log
其次我得到了我的用户当前使用的语言,并将结果设置为currentLanguages My result in console.log
我的第三个代码:
<ion-select name="languages" [(ngModel)]="currentLanguage" multiple="true">
<ion-option *ngFor="let language of languagesData" [value]="language">{{language.language}}</ion-option>
</ion-select>
我的价值观没有预选。
如果我将[(ngModel)]="currentLanguage"
替换为[(ngModel)]="LanguagesData"
,则会预先选择所有值。
你能解释一下我做错了吗?
感谢。
答案 0 :(得分:0)
<ion-select name="languages" [(ngModel)]="currentLanguage" multiple="true">
<ion-option *ngFor="let language of languagesData" [value]="language.language">{{language.language}}</ion-option>
</ion-select>
您错过了[value]="language.language"
希望它能解决你的问题。
答案 1 :(得分:0)
我用诡计来解决我的问题(我并不以此为荣)。 目前我从api调用获取了我的2个数据数组。 如果我使用基本数组它不起作用。 但如果我这样做的话:
let i = 0;
let j = 0;
while (i < this.currentLanguage.length) {
while (j < this.languagesData.length) {
if (this.currentLanguage[i].id == this.languagesData[j].id)
this.finalLanguage.push(this.languagesData[j]);
j += 1;
}
j = 0;
i += 1;
}
当我使用finalLanguage而不是currentLanguage时,它可以正常工作。 我真的不明白为什么......