Переменная переопределяется в цикле

0

Для каждого события это другое место. Однако, когда он отображается в пользовательском интерфейсе, все местоположения были отменены последним вызовом 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>
Теги:
for-loop

1 ответ

3

Просто измените код на что-то вроде этого:

//$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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню