无法与angular 2中的离子项绑定数据

无法与angular 2中的离子项绑定数据,angular,ionic2,hybrid-mobile-app,angular2-services,Angular,Ionic2,Hybrid Mobile App,Angular2 Services,使用angular 2处理ionic-2,我得到了一组对象,在这些对象中我获得了个人的详细信息 我已经声明了一个vardataObj:any,以分配我从对象获得的值。我甚至成功地将这些值分配给了对象,但我仍然无法在HTML/模板中显示或绑定这些值 类别: export class DetailsPage { id: any; public dataObj: any; constructor(public navCtrl: NavController, public navParam

使用
angular 2
处理
ionic-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>

名称
{{dataObj.name}
尼克号。
{{dataObj.nic}

这可能是因为您正在构造函数中进行异步调用,因此页面呈现的时间仍然很早,以便响应返回??。我在《爱奥尼亚3》中也遇到过这个。。。您可能希望数据绑定在其值更改时会自动更新。。。但有时您需要使用手动调用该更改

从'@angular/core'导入{ChangeDetectorRef}

将此对象指定给构造函数中的属性:

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()
      })  
};

你可以试试这个。让我知道你在看什么???没什么。。。您的控制台中是否有错误?此行是否显示任何
console.log(this.dataObj)?是的,它按预期显示数据页面的其余部分是否正确显示。。。。(像图片一样?)这可能是因为您正在构造函数中进行异步调用,所以页面呈现的时间仍然很早,以便响应返回??我们可以使用这个
changeDetector.detectChanges()
进行异步调用,首先完成他的所有过程吗?您好@PatoSalazar,您的答案很好。请您详细说明何时使用或不使用
ChangeDetectorRef
?或者你能参考一些文件吗?@duanx这个链接帮了我很多。。。祝你好运
https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
@PatoSalazar非常感谢您!