Ionic 如何从modal接收数据?

xhv8bpkk  于 2023-09-28  发布在  Ionic
关注(0)|答案(1)|浏览(124)

我有一个模态与选择过滤区域。当我打开模式时,我选择区域并显示该区域的数据,因此我想将该数据发送回First Page。我认为我做得对,因为在控制台上我看到了过滤后的数据,但我不知道如何在第一页的HTML中显示。有人能帮我吗?我不知道我到底需要做什么。
MODAL.TS

export class FiltrosModalPage implements OnInit {
   public selectedFilter: string = 'regiao.id';
   regiao: any;
   regioes: Regiao[];
   myParam: string;
   produtos: Produto[];
   produtossubcategoria: Produtosubcategoria[];

   constructor(
     private viewController: ViewController,
     public navCtrl: NavController,
     public db: DatabaseProvider,
     public navParams: NavParams,
     public viewCtrl: ViewController
   ) {
     console.log(navParams.get('val'));
     this.regioes = navParams.get('val');
   }

   selecionaregiao(id) {
     this.db.getProdutosregiao(id)
       .then(data => this.produtos = data)
       .catch(error => console.log('Something want wrong!'));
       console.log('passou em tudo')
   }

   dismiss() {
     let data = this.produtos;
     this.viewCtrl.dismiss(data);
   }
}

HOME.TS

openFiltrosModal() {
  this.openModal('FiltrosModalPage');
}

openModal(pageName) {

  let filtrosModal = this.modalCtrl.create(pageName, {'val': this.regioes}, { cssClass: 'inset-modal' });
  filtrosModal.onDidDismiss(data => {
    console.log('MODAL DATA', data);
    this.value = data;
  });
  filtrosModal.present();
}

filter optioonsmy console
在控制台图像中,我在第一页html上获取此数据。但我不知道如何显示然后。

olmpazwi

olmpazwi1#

由于您将数据保存在类的属性(this.value)中,因此您只需要一个ngFor to iterate through the arrays并显示数据。
你可以在你的HTML上这样做

<!-- Here you'll use the ngIf to just show the list itens if there's something on value -->
<ion-list *ngIf="value">
  <!-- ngFor'll iterate your array and render a new element for every item in your array -->
  <ion-item *ngFor="let item of value">
    <!-- then you can access an property of your object in that array position -->
    {{item.nom_regiao}}
  </ion-item>
</ion-list>

确保value在模态中过滤之前没有任何值,如果它被初始化为任何值,则必须更改ngIf条件。

相关问题