2017-05-04 5 views
1

MapPageに移動しますが、空白のページはmappageに表示されます。他のページに移動していますが、ページは空です2

this.navCtrl.push(MapPage, { UDI: this.UID, Token: Token }); 
    this.navCtrl.setRoot(MapPage ,{ UDI: this.UID, Token: Token }); 
    this.navCtrl.popToRoot(); 

完全なコード

import { Component } from '@angular/core'; 
import { Platform, AlertController, NavController } from 'ionic-angular'; 
import { LoginService } from '../../providers/login-service'; 
import { Http, Response } from '@angular/http'; 
//import { NativeStorage } from 'ionic-native';9903601 
import { DashboardPage } from '../dashboard/dashboard'; 
import { MapPage} from '../map/map' 
import 'rxjs/add/operator/map'; 

@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html', 
    providers: [LoginService] 
}) 
export class LoginPage { 
    public UID: any; 
    masks: any; 
    public phoneNumber: any = ""; 
    public Token; 
    public data; 

    constructor(public platform: Platform, public navCtrl: NavController, public loginservice: LoginService, public http: Http, public alertCtrl: AlertController) { 
     this.masks = { 
      phoneNumber: ['+', '9', '1', '-', /[1-9]/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/] 
     }; 
    } 

    ionViewDidLoad() { 
     this.GetUID(); 
    } 

    GetUID() { 
     this.loginservice.UIDload() 
      .then(data => { 
       this.UID = data; 
      }); 
    } 

    GetActivation() { 
     this.http.get('http://mydomain/sendverification/' + this.UID + '/' + this.phoneNumber + '/' + 'android1') 
      .map(res => res.text()) 
      .subscribe(data => { 
       this.data = data; 
       this.data = this.data.replace(/\n/g, ""); 
       this.data = this.data.replace(/\t/g, ""); 
       let alert = this.alertCtrl.create({ 
        title: "4 digit activation code sent to you", 
        inputs: [{ 
         name: 'activationcode', 
         placeholder: 'activation code' 
        }], 
        buttons: [{ 
         text: 'next', 
         role: 'next', 
         handler: data => { 
          this.http.get('http://mydomain/chekverification/' + this.UID + '/' + data.activationcode) 
           .map(res => res.text()) 
           .subscribe(Token => { 
            console.log(Token); 
            this.navCtrl.push(MapPage, { UDI: this.UID, Token: Token }); 
            this.navCtrl.setRoot(MapPage ,{ UDI: this.UID, Token: Token }); 
            this.navCtrl.popToRoot(); 
           }); 
         } 
        }, 
        { 
         text: 'retry', 
         role: 'retry', 
         handler: data => { 
          this.GetActivation(); 
         } 
        } 
        ] 
       }); 
       alert.present(); 
      }); 
    } 

} 

答えて

1

は、次の3つの機能の一つだけを使用する必要があります。

this.navCtrl.push(MapPage, { UDI: this.UID, Token: Token }); 

この

は、ナビゲーションスタックの上MapPageをプッシュします。

this.navCtrl.setRoot(MapPage ,{ UDI: this.UID, Token: Token }); 

これは、スタックのルートとしてMapPageを設定し、ページをロードします。

this.navCtrl.popToRoot(); 

これはスタックのすべてのページをスタックの現在のルートまでポップします。あなたのケースでは

のみ行います。これらの3行は、最後の日まで働いていたあなたの助けを

this.navCtrl.setRoot(MapPage ,{ UDI: this.UID, Token: Token }); 
+0

こんにちは@suraj感謝を。 – RSA

+0

なぜそれが動作するのかわかりません..彼らはすべて約束を返します。彼らは異なる時に戻る可能性があります.http://ionicframework.com/docs/api/navigation/NavController/ –

関連する問題