如何设置默认值离子选择项?

时间:2018-02-09 10:31:28

标签: html angular ionic2

我需要将默认值设置为离子选择项。

enter image description here

上面的离子选择包含地点列表,选择一个地方后,我将其保存到localStorage。

我需要这个localStorage是ion-select的默认值,如下所示:

enter image description here

  

当页面被更改时,离子选择返回placeHolder而没有选择项目

CODE

  <ion-item>
    <ion-select multiple="false" placeholder="Which Place?" [(ngModel)]="placeId" (ionChange)="showPlace()"> 
      <ion-option class="text-input place-field" *ngFor="let place of places | async;let i = index" value="{{place.id}}"> 
        {{place.name}}
      </ion-option>
    </ion-select>
  </ion-item>

4 个答案:

答案 0 :(得分:0)

如果你有索引值,你可以从localstorage中获取它,当页面加载时你可以将它保存在变量中,然后用它绑定到ion-option上的selected属性:

HTML:

<ion-item>
  <ion-select multiple="false" placeholder="Which Place?" [(ngModel)]="placeId" (ionChange)="showPlace()"> 
    <ion-option class="text-input place-field" *ngFor="let place of places | async;let i = index" [selected]="i == selectedIndex" value="{{place.id}}"> // the variable selected index will be a number and will select the item matching with the index from the array.
    {{place.name}}
    </ion-option>
  </ion-select>
</ion-item>

在ts:

selectedIndex: number;

constructor(){
  this.selectedIndex = localStorage.getItem('index') // 
}

答案 1 :(得分:0)

我解决了

ion-select具有与placeId

的双向数据绑定
<ion-select multiple="false" placeholder="Which Place?" [(ngModel)]="placeId" (ionChange)="showPlace()"> 
  <ion-option class="text-input place-field" *ngFor="let place of places | async;" value="{{place.id}}"> 
    {{place.name}}
  </ion-option>
</ion-select>

选择地点后,我将所选地点的ID保存在本地存储中。然后在ionViewDidLoad()我初始化变量this.placeId

this.placeId = localstorage.getItem('foo')

它运作正常。

  

我的错误:我在本地存储中保存了该地点的名称,而不是该地方的ID

答案 2 :(得分:0)

我找到了解决方案.. 将AbstractControl添加到[(ngModel)]。

例如:
在你的TS文件..

placeForm: FormGroup;
placeId: AbstractControl;

constructor(){
  this.placeForm.formBuilder.group({
   placeId: ['', Validators.required],
  });
  this.placeForm.get('placeId').setValue(place.id);
}
你的HTML中的

只需添加此[(ngModel)]="placeForm.placeId"

即可

答案 3 :(得分:0)

谢谢

离子4

  ionViewDidEnter() {
    let parametros = this.navParams.get('parametros');
    this.cuentaBancaria.empresa._id = parametros.empresa;
    this.cuentaBancaria.moneda._id = parametros.moneda;
  }