循环中的变量被覆盖
Variable being overriden in for loop
对于每个事件,它们都是不同的位置。但是,当它显示在UI上时,所有位置都已被上一个API调用覆盖。我该如何阻止这种情况的发生?
$scope.eventLoc = '';
API.get({entity: 'organisation', entity_id: oid, property: 'campaign', property_id:cid, property2:'events'}, function(resp) {
$scope.orgEvents = resp.data;
for (i in resp.data) {
ceid = resp.data[i].CampaignEventID;
lid = resp.data[i].LocationID;
API.get({entity: 'location', entity_id: lid}, function(respLocation){
$scope.eventLoc = respLocation.data;
})
}
});
<li ng-repeat="event in orgEvents track by $index">
<h2>{{event.Name}}</h2>
{{eventLoc.Address1}}
</li>
只需将代码更改为以下内容:
//$scope.eventLoc = ''; //this can be removed
API.get({entity: 'organisation', entity_id: oid, property: 'campaign', property_id:cid, property2:'events'}, function(resp) {
$scope.orgEvents = resp.data;
angular.forEach($scope.orgEvents, function(orgEvent) {
//ceid = orgEvent.CampaignEventID; //this is not being used?
lid = orgEvent.LocationID;
API.get({entity: 'location', entity_id: lid}, function(respLocation){
orgEvent.eventLoc = respLocation.data;
});
});
});
<li ng-repeat="event in orgEvents track by $index">
<h2>{{event.Name}}</h2>
{{event.eventLoc.Address1}}
</li>
相关文章:
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 在javascript中使用覆盖变量是不是一种糟糕的做法
- 由于异步回调,变量被覆盖
- 被覆盖的 setTimeout 变量中的函数
- 定义变量是否比在 JS 中覆盖变量使用更多的资源
- 异步Javascript变量覆盖
- 表,并选择要传递到新页面的rRow(id)(这样它就不会覆盖行选择的变量)
- 敲除js变量覆盖
- 返回语句后的函数声明全局变量不会被覆盖
- 在 forEach 循环中覆盖的变量
- 如何保护全局变量以在 Node.js 中被覆盖
- 两个函数使用相同的变量,都不会覆盖其原始变量
- 长方程与覆盖变量
- 使用相同的覆盖变量的 JavaScript 对象
- 不覆盖变量
- 每次循环覆盖变量
- 从数据库读取时覆盖变量
- JavaScript -用户的安全覆盖变量
- 覆盖变量内容javascript
- 覆盖变量或检查是否存在