2017-08-09 135 views
2

離子3. 的特性「年齡」我嘗試使用AUTH-者地位的文件home.ts:錯誤。無法讀取未定義

import { Component } from ‘@angular/core’; 
import { NavController } from ‘ionic-angular’; 
import { AuthServiceProvider } from ‘…/…/providers/auth-service/auth- 
service’; 
import { WelcomePage } from ‘…/…/pages/welcome/welcome’; 

@Component({ 
    selector: ‘page-home’, 
    templateUrl: ‘home.html’ 
}) 

export class HomePage { 

    public userDetails : any; 
    public responseData: any; 
    public dataSet: any; 

    userPostData = {「user_id」:"",「token」:""}; 

    constructor(public navCtrl: NavController, public authService: 
    AuthServiceProvider) { 

     const data = JSON.parse(localStorage.getItem('userData')); 
     this.userDetails = data.userData; 
     console.log(this.userDetails); 

     this.userPostData.user_id = this.userDetails.user_id; 
     this.userPostData.token = this.userDetails.token; 

     this.getData(); 

    } 

    getData(){  

     this.authService.postData(this.userPostData,'bodygraph') 
     .then((result) => { 
      this.responseData = result; 

      if(this.responseData.bodygraphData){ 
       this.dataSet = this.responseData.bodygraphData; 
       console.log(this.dataSet);      
      } 
      else{ 
      console.log("No access"); 
      } 
    }, (err) => { 
     // Error log 
    }); 

    } 
} 

我創建PHP API。 我收到了數據。 但我有錯誤的文件home.html的:

{{userDetails.name}} {{dataSet.age}} -ERROR HERE!!!! 

錯誤:

Runtime Error 
Cannot read property ‘age’ of undefined 

我認爲該文件home.html的打開比我更早的獲得數據。

Console.log screen short

請幫助我。

回答

0

I think that the file home.html opens earlier than I get the data.

你說得對。您只需在您的視圖(html)中使用安全導航操作員

做:

{{userDetails?.name}} {{dataSet?.age}} 
+0

謝謝。我也找到了這個解決方案。但也許有可能停止以某種方式加載HTML文件,直到功能getData完成? –

+0

no ..頁面加載遵循其自己的生命週期..基於NavController ..你將不得不告訴視圖來顯示數據收到時 –

+0

如果你想做這樣的事情,你將不得不在頁面被推送 –

相關問題