【发布时间】:2021-04-15 20:33:15
【问题描述】:
我试图在迭代时获取每个项目的距离。
Refer this Image for the issue
在下面的代码中,我得到了与(onResponse)="getDistance($event)"的距离
<div *ngFor="let routes of places[0].routes" class="todo-thumbnail-area">
<agm-map [zoom]="1">
<agm-direction [origin]="routes.origin" [destination]="routes.destination" (onResponse)="getDistance($event)">
</agm-direction>
</agm-map>
<div class="todo-price">One Way Trip Cost - {{ this.routeTotalDistance }}</div>
</div>
在 Component.ts 中
getDistance (event) {
this.routeTotalDistance = event.routes[0].legs[0].distance.text;
}
所以在控制台中,如果我打印 routeTotalDistance,我会看到每次迭代的不同值,但最后我看到所有项目的值相同。
我认为在最后一次迭代之后 routeTotalDistance 设置为最后一次迭代值。
如何解决这个逻辑问题?请指导。
【问题讨论】:
-
我不知道你的最终目标是什么,这是否回答了你的问题:
this.routeTotalDistance += event.routes[0].legs[0].distance.text -
如果我这样做,我会得到这个
151 km151 km462 km462 km347 km347 km332 km332 km506 km506 -
@RachidO 我附上了一张图片供您参考
-
发生这种情况是因为
this.routeTotalDistance对整个组件都是全局的,相反,您需要为每条路线设置 routeTotalDistance -
但是如何在迭代时为每个路由声明一个变量?
标签: angular typescript ngfor