2017-08-06 91 views
1

使用ionic-2angular 2,我得到一個對象數組,其中我得到了個人的詳細信息。無法將數據與角度爲2的離子項綁定

我已經聲明瞭一個var dataObj:any來分配我從我的對象獲得的值。我已經成功地連分配的值的對象,但我仍然無法顯示或HTML /模板結合這些值

類:

export class DetailsPage { 
    id: any; 
    public dataObj: any; 

    constructor(public navCtrl: NavController, public navParams: NavParams, public absService: AbsconderService, public posService: PosService) { 
    this.id = navParams.get('id'); 
    this.getData(this.id) 
    } 

    getData(id) { 
    this.absService.getAbsconderById(id) 
     .then(data => { 
     this.dataObj = { 
      name : data.data[0].name, 
      nic : data.data[0].nic, 
      fname: data.data[0].fname, 
      caste: data.data[0].caste, 
      residence: data.data[0].residence, 
      crime_no: data.data[0].crime_no, 
      us: data.data[0].us, 
      ps: data.data[0].ps 
     } 
      console.log(this.dataObj); 
     }) 
    }; 


    ionViewDidLoad() { 
    console.log('ionViewDidLoad Details'); 
    } 

} 

模板

<ion-content padding> 
    <ion-grid> 
    <ion-row> 

     <ion-col col-12> 
     <img class="background-image-sp" src="assets/images/avtar.png" /> 
     </ion-col> 
    </ion-row> 
    </ion-grid> 

    <ion-item> 
    <ion-label stacked>Name</ion-label> 
    <ion-label>{{dataObj.name}}</ion-label> 
    </ion-item> 

    <ion-item> 
    <ion-label stacked>NIC No.</ion-label> 
    <ion-label>{{dataObj.nic}}</ion-label> 
    </ion-item> 
</ion-content> 
+0

你在看什麼?只是沒有...你的控制檯有錯誤嗎? –

+0

這行顯示了什麼'console.log(this.dataObj); '? –

+0

它顯示數據如預期 – Mangrio

回答

3

可能是因爲您在構造函數中進行了異步調用,所以頁面呈現時的響應時間還沒有提前?此外,我已經在離子3碰到這個......你會期望時,他們的價值的變化......但有時你需要調用改變數據綁定會自動更新,手動使用

import { ChangeDetectorRef } from '@angular/core';

分配此對象在構造函數中的屬性:

constructor(public navCtrl: NavController, public navParams: NavParams, public absService: AbsconderService, public posService: PosService, private changeDetector: ChangeDetectorRef) { 
    this.id = navParams.get('id'); 
    this.getData(this.id) 
} 

,並調用它在你然後在最後

 getData(id) { 
    this.absService.getAbsconderById(id) 
     .then(data => { 
     this.dataObj = { 
      name : data.data[0].name, 
      nic : data.data[0].nic, 
      fname: data.data[0].fname, 
      caste: data.data[0].caste, 
      residence: data.data[0].residence, 
      crime_no: data.data[0].crime_no, 
      us: data.data[0].us, 
      ps: data.data[0].ps 
     } 
      console.log(this.dataObj); 
      changeDetector.detectChanges() 
     }) 
}; 

你可以試試這個塊。讓我知道

+0

我們可以用這個'changeDetector.detectChanges()'做異步調用來完成他所有的程序嗎? – Mangrio

+0

我不明白這個問題... –

+0

嗨@PatoSalazar,你的回答很好。你能告訴更多什麼時候使用或不使用'ChangeDetectorRef'嗎?或者你可以參考一些文件? – Duannx