如何从模态接收数据?

时间:2018-10-03 16:21:03

标签: angular cordova ionic-framework

我有一个用于过滤区域的模态。 当我打开模态时,我选择区域并显示该区域的数据,因此我想将该数据发送回首页。而且我认为我做对了,因为在控制台上我看到了过滤后的数据,但是我不知道该如何在首页的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 optioons my console

与控制台映像一样,我在第一页html上获取此数据。但是我不知道该怎么显示。

1 个答案:

答案 0 :(得分:0)

由于您已将数据保存在班级(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条件,则必须更改。

希望这会有所帮助。