Angular 2 中的绑定的方法在无限循环吗?

阅读更多

我在自己的Ionic 2项目中,使用卡片列出数据:

<ion-card *ngFor="let item of inspects">

卡片中有一个导航按钮,根据每项的数据生成连接打开百度地图,我是这样绑定的:
页面:

 <a [href]="nav(item)" target="_blank" ion-button icon-left clear small>
        <ion-icon name="pin">ion-icon>
        <div>导航div>
a>

代码:

  nav(item) {
    let url = `bdapp://map/navi?location=${item.lng},${item.lat}`;
    if (Device.platform == 'iOS') {
      url = `baidumap://map/direction?origin=34.264642646862,108.95108518068&destination=${item.lng},${item.lat}&mode=driving&coord_type=wgs84&src=webapp.navi.yourCompanyName.yourAppName`;
    }
    console.log(url);
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
  }

我查看console,发现一直在输出:


console一直在输出

原来这是Angular2在change detection cycle中不停的调用绑定的方法nav(item)。因此,建议不要在属性上绑定方法,因为调用太频繁了,最好预先计算好然后绑定一个值就好。

你可能感兴趣的:(ionic,2,angular,ngFor,绑定)