动态地将变量赋给对象属性

时间:2018-05-07 14:38:42

标签: javascript json angular google-maps

我想为对象属性分配一个变量。

this.dir = {
  origin : {
     lat :36.7014631
    , lng: -118.7559974
  },
  destination: { lat: 36.7014631, lng: -118.7559974}
}

上面的代码工作正常,但下面我需要的东西不起作用:

this.dir = {
  origin : {
     lat :this.la,
     lng: this.lo
  },
  destination: { lat: 36.7014631, lng: -118.7559974}
}

我需要这样在HTML中绑定:

<agm-map [latitude]="lat" [longitude]="lng">
  <agm-direction *ngIf="dir" [origin]="dir.origin" [destination]="dir.destination"></agm-direction>
</agm-map>

1 个答案:

答案 0 :(得分:0)

<agm-map [latitude]="lat" [longitude]="lng">
  <agm-direction *ngIf="dir" [origin]="dir.origin" [destination]="dir.destination"></agm-direction>
</agm-map>

您正尝试将lat设置为[latitude],但根据您提供的代码,您尚未将lat定义为自己的变量。

你有这个字段:

this.dir = {
  origin : {
     lat :this.la, 
     lng: this.lo
  },
  destination: { lat: 36.7014631, lng: -118.7559974}
}

因此,请将模板更改为不访问lat,因为它未在您的控制器中定义,而是访问dir.origin.lat

<agm-map [latitude]="dir.origin.lat" [longitude]="dir.origin.lng">
  <agm-direction *ngIf="dir" [origin]="dir.origin" [destination]="dir.destination"></agm-direction>
</agm-map>

或者,因为看起来你有一个lat&amp;长场已经这样做了:

<agm-map [latitude]="la" [longitude]="lo">
  <agm-direction *ngIf="dir" [origin]="dir.origin" [destination]="dir.destination"></agm-direction>
</agm-map>