2016-11-01 56 views
0

我在我的应用程序中有4页。 LoginPage,TransistionPage,FirmsPage和ReportsPage。 如果用户已经过身份验证,我的根页面是TransistionPage,此页面仅负责从休息中获取数据并将其传递给FirmsPage。nav.popToRoot()显示空白屏幕

我试图从navi.popToRoot()返回到ReportsPage的根页面(让我们假设用户已经通过身份验证并且根页面是TransistionPage),但是当我这样做时,我只是面对着白色的空白页面。

//报告页面

@Component({ 
    selector: 'page-report', 
    templateUrl: 'report.html' 
}) 
export class ReportsPage { 

    sales: any[]; 
    collectings: any[]; 
    summary: any[]; 
    products: any[]; 
    loading: any; 
    firmId: string; 


    constructor() {} 

    goBack(){ 
    this.navCtrl.pop(); 
    } 
} 

// Transistion页

@Component({ 
    selector: 'page-transistion-page', 
    templateUrl: 'transistion-page.html' 
}) 
export class TransistionPage { 
    firms: any; 
    loading: any; 


    constructor(public navCtrl: NavController, private navParams: NavParams, public loadingCtrl: LoadingController, public firmService: FirmService) { 
    this.getFirms(); 
    } 

    ionViewDidLoad() { 
    console.log('Hello TransistionPage Page'); 
    } 

    getFirms(){ 
    this.presentLoading(); 
     this.firmService.getFirms() 
     .subscribe(
      data => { 
      this.firms = data.subeler; 
      //this.loading.dismiss(); 
      this.navCtrl.push(FirmsPage,{param: this.firms},{animate: true, direction: 'back'}); 
      }, 
      error => alert(error), 
      () => console.log("firmalar çekildi") 
     ); 
    } 


    presentLoading() { 
    this.loading = this.loadingCtrl.create({ 
     content: "Welcome "+window.localStorage.getItem('username')+ " , directing to the firms page", 
     duration: 1000, 
     dismissOnPageChange: false 

    }); 
    this.loading.present(); 
    } 
} 

//公司网页

@Component({ 
    selector: 'page-firms', 
    templateUrl: 'firms.html' 
}) 
export class FirmsPage { 
    langs; 
    langForm; 
    loading: any; 
    username : string; 
    firms: any; 


    constructor(public navCtrl: NavController, private navParams: NavParams, public firmService: FirmService, public loadingCtrl: LoadingController, public authService: Auth) { 
    this.firms = this.navParams.get('param'); 
    this.username = window.localStorage.getItem('username'); 
    this.langForm = new FormGroup({ 
     "langs": new FormControl('') 
    }); 
    } 


    ionViewDidLoad() { 
    console.log('Hello FirmsPage'); 
    } 

    doSubmit() { 
    console.log('Submitting form', this.langForm.value.langs); 
    this.navCtrl.push(ReportsPage, {param:this.langForm.value.langs},{animate: true, direction: 'back'}); 
    } 

    logout(): void { 
    this.authService.logout(); 
    this.navCtrl.setRoot(LoginPage); 

    }  
} 

通常情况下,请求工作。但是,当我popToRoot页面不加载时,我认为,它可以与我做请求的地方相关联。我是在构造函数中完成的。这就是为什么当popToRoot时页面不能请求。如果这是问题。我在哪里可以要求?

+0

你声明'公共navCtrl:在报告页面NavController'?还是只是在你的snipet失踪? – Huiting

回答

0

你应该得到应用的实例使用popToRoot方法

import { Component} from '@angular/core'; 
import { App } from 'ionic-angular'; 

@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 

export class LoginPage { 

    navCtrl = this.appCtrl.getRootNav(); 

    constructor(public appCtrl: App) { 
    appCtrl.popToRoot(); 
    }