0

私の目的は、データを同じページに渡すことです。私はこのコンセプトを理解するのに苦労している。私はまだイオンbtwの新しいです。データを同じページに戻す方法

私のrequest.htmlコードは、要求のFirebaseコンソールからすべての要求を取得します。

<ion-header> 
    <ion-navbar color="primary"> 
    <ion-title name="title">Job Requests</ion-title> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 
    <div class="filter"> 
<button class="islandwide" ion-button large>Islandwide</button> 
<button class="nearby" ion-button large (click)="openMapPage()">Nearby</button> 
</div> 

<ion-list> 
    <ion-card *ngFor="let user of request | async" class="job"> 
    <button ion-item (click)="goToJobDetails(user.$key)" class="info"> 
    <ion-avatar class="avatar" item-start> 
     <img src="../assets/icon/user_male-512.png"> 
    </ion-avatar> 
    <h2 class="name">{{user.regdetails.username}}</h2> 
    <p text-wrap class="address"><ion-icon name="compass"> 
     </ion-icon> {{user.regdetails.address}}</p> 
    <p id="key">{{user.$key}}</p> 
    </button> 
    </ion-card> 
</ion-list> 

</ion-content> 

私のコンストラクタ:

constructor(public navCtrl: NavController, public navParams: NavParams, 
      angFire: AngularFireDatabase) { 

    this.request = angFire.list('/request'); 
    this.userreq = angFire.list(`${this.userkey}`); 
    this.reqdetails = angFire.list('reqdetails'); 

    } 

マイopenMapPage()方法

は、基本的にはこの方法しかreqdetailsを持つすべてのユーザーを返し、データがrequest.htmlページ

openMapPage() 
    { 

    var ref = firebase.database().ref("request"); 
    ref.once("value").then((snapshot) => { // <------ Here! 
     var a = snapshot.exists(); // true 
     var c = snapshot.hasChild("reqdetails"); // true 
     var d = snapshot.child('reqdetails').exists(); 
     var requestsKey = snapshot.key; 
     var requestsValue = snapshot.val(); 

     snapshot.forEach((childSnapshot) => { // <------ And here! 
      var requestKey = childSnapshot.key; 
      var requestValue = childSnapshot.val(); 

      var reqdetails = requestValue.reqdetails; 
      if (reqdetails) { 

       this.data = requestKey; 
       console.log(this.data); 
       //this.arr.push(requestKey); 
       //console.log(this.arr); 
      } 

     }); 
     this.navCtrl.push(RequestsPage, { 'param1': this.data }); 
    }); 


} 
に戻って渡しています

これは、request.htmlは、リクエストテーブルからすべてのデータを取得した後のように見えます。これはfirebaseからのすべての要求レコードを取得するデフォルトのビューです。

enter image description here

そして今、私はこの問題に直面しています。ユーザーがrequest.htmlopenMapPage()メソッドをクリックしてトリガーすると、openMapPageにリダイレクトされます。どのように私は私がこの今のところ

this.navCtrl.push(RequestsPage, { 'param1': this.data }); 

試してみましたrequest.html

同じHTMLページに、唯一reqdetailsを持つユーザーのためのデータをリダイレクトします。しかし、それはまだそれがない持っている意味、全体の要求を示していますフィルタリングされました。

+0

は、あなたの 'はconsole.log(this.data)されたもの;'プリント –

+0

はそれだけreqdetailsを持つすべてのユーザーのキーを出力しています。 – Suresh

+0

私はどのようにrequest.htmlページに戻りますか? – Suresh

答えて

0

解決済みです。

openMapPage() 
    { 


    var ref = firebase.database().ref("request"); 
    ref.once("value").then((snapshot) => { // <------ Here! 
     var a = snapshot.exists(); // true 
     var c = snapshot.hasChild("reqdetails"); // true 
     var d = snapshot.child('reqdetails').exists(); 
     var requestsKey = snapshot.key; 
     var requestsValue = snapshot.val(); 

     snapshot.forEach((childSnapshot) => { // <------ And here! 
      var requestKey = childSnapshot.key; 
      var requestValue = childSnapshot.val(); 

      var reqdetails = requestValue.reqdetails; 
      if (reqdetails) { 
       this.data = requestKey; 
       console.log(this.data); 
       //this.arr.push(requestKey); 
       //console.log(this.arr); 
       this.getRequest = this.angFire.list('request', { 
        query: { 
        orderByChild: 'reqdetails', 
        startAt: 'reqdetails' 
      } 
     }) 

      } 
     }); 
/*  this.navCtrl.push(RequestsPage, { 
      thing1: this.data 
     });*/ 

     //this.navCtrl.push(RequestsPage, { 'param1': this.data }); 
    });  
    } 
関連する問題