如何预选离子选项

时间:2018-03-18 14:28:55

标签: javascript typescript ionic-framework

我是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",则会预先选择所有值。

你能解释一下我做错了吗?

感谢。

2 个答案:

答案 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时,它可以正常工作。 我真的不明白为什么......