firebase - 如何从ion select中获取item的所有信息?

标签 firebase ionic-framework google-cloud-firestore ion-select

我从 Firestore 加载项目列表并将它们放入 ion select 中,问题是由于每个项目都有一个 id,我需要获取选择的 id。

这是我获取 Controller 中的项目的代码。

this.MesasColeccion = this.mesasser.getMesaListfromFirestore();
this.MesasColeccion.snapshotChanges().subscribe(mesasLista => {
  this.mesas  = mesasLista.map(mesa => {
    return {
      nombre: mesa.payload.doc.data().nombre,
      capacidad: mesa.payload.doc.data().capacidad,
      estado: mesa.payload.doc.data().estado,
      union:mesa.payload.doc.data().union,
      id: mesa.payload.doc.id
    }
  });

  this.mesas2  = mesasLista.map(mesa2 => {
    return {
      nombre: mesa2.payload.doc.data().nombre,
      capacidad: mesa2.payload.doc.data().capacidad,
      estado: mesa2.payload.doc.data().estado,
      union:mesa2.payload.doc.data().union,
      id: mesa2.payload.doc.id
    }
  });
});
this.MesasObservable = this.MesasColeccion.valueChanges();

这是在 ion-select 中显示列表的代码:

<ion-card>
<ion-card-content>
  <ion-item id="mesas-select1">
  <ion-label >
    Mesa #1:
  </ion-label>
  <ion-select  [(ngModel)]='Gruposobj.nombrem1' name="Mesa#1" placeholder="Selecciona la mesa"  >
    <ion-option   *ngFor="let mesa of mesas">
      {{mesa.nombre}}
    </ion-option>
  </ion-select>
  </ion-item>

  <ion-item id="mesas-select1">
    <ion-label >
      Mesa #2:
    </ion-label>
    <ion-select [(ngModel)]='Grupos2obj.nombrem2' name="Mesa#2" placeholder="Selecciona la mesa" >
      <ion-option *ngFor="let mesa2 of mesas2" >
        {{mesa2.nombre}}
      </ion-option>
    </ion-select>
    </ion-item>

ngmodel 将所选选项分配给 GruposModel 中的属性。在本例中,vinculacionmodel 的对象是 Gruposobj 和 Grupos2obj。当用户选择 ionic-select 的项目时,我需要获取从项目中选择的 id。因为我会将此 mesa.id && mesa2.id 分配给带有 Gruposobj.mesa1 && Gruposobj.mesa2 的 vinculacionmodel。

这是 vinculacion 模型:

export interface vinculacionmodel {
    
    id?:string;
    mesa1:string;
    mesa2:string;
    mesa3:string;
    nombrem1:string;
    nombrem2:string;
    nombrem3:string;
}

最佳答案

当您想要获得对象的 ID 时,您可以在 ion-select 上实现 ionChange 事件并获取所选对象。

更多详情请参阅以下代码。

<ion-select [(ngModel)]='Grupos2obj.nombrem2' name="Mesa#2" placeholder="Selecciona la mesa" (ionChange)="onSelectChange($event)">
<ion-option *ngFor="let mesa2 of mesas2" [value]="mesa2['id']">
    {{mesa2.nombre}}
</ion-option>
</ion-select>

.ts 文件中的 ionChange 事件:

onSelectChange(selectedValue: any) {
    //Selected Value Id will get as param ==> selectedValue
    //Selected Object
    var item = this.mesas2.find(item => item['id'] === selectedValue);
    //Position of object in array
    var postion = this.mesas2.findIndex(item => item['id'] === selectedValue);
}

希望这能帮助您从 ios-select 获取 ID。

关于firebase - 如何从ion select中获取item的所有信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582974/

相关文章:

SwiftUI 线程 1 : Fatal error: No ObservableObject of type SessionStore found

java - 当我第一次启动应用程序时,用户名是空的

javascript - 云函数: Delete file from storage

android - IONIC 5 Cordova 插件可以构建,但在运行 android 时无法工作。它仅在 -livereload 中工作

google-chrome - Chrome 开发工具 : How to simulate offline for a particular domain than the entire network?

android - 如何在 UML 图中建模 Firebase 数据库?

firebase - Firebase中基于多个where子句的查询

javascript - XMLHttpRequest 失败 : {statusText":Not Found","status::404,"responseURL":https://api. parse.com/1/users"Ionic + Parse

android - 如何在应用崩溃时保存录音?

firebase - 使用 Firebase 扩展 "Export to BigQuery"时,导出是免费的还是按流插入收费?