2015-07-17 3 views
2
angular.module('finalApp').controller('WarningsCtrl', function ($scope,HttpService) { 
    HttpService.get('/warings/snowstrome').error(function(data){ 
     data={ 
      values:[ 
      { 
       wariningtype:'snowstrome', 
       warningtitle: 'Severe Snowstrom Warning', 
       agentid: 100, 
       name: 'Otaru-Shi', 
       location:'Hokkaido', 
       timezone: 'Feb 16,4:35pm Jst', 
       zip:'0470028, 0470035, 0470154', 
       weatherstatus:'Snow, Ice and Low Temperature Expected', 
       weatheralerts:'Automated Alert Sent to 45 Customers', 
       affectedcustomers:'Affected Customers HR:20, MR:20, LR:20' 
      } 
      ] 
     }; 
     $scope.liveCards=data; 
    }); 
    console.log($scope.liveCards) 
}); 
+0

Вы не можете, то запрос является асинхронным. Вы пытаетесь зарегистрировать ответ до его возврата с сервера. Читайте: http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call – charlietfl

ответ

1

$ scope доступен за пределами зоны вызова. Консоль не должна показывать обновленные данные из-за асинхронного вызова AJAX.

Вы можете попробовать обновить функцию как следующий

angular.module('finalApp').controller('WarningsCtrl', function ($scope,HttpService) { 
    var getSnowStromeWarning = function(callback) { 
     HttpService.get('/warings/snowstrome').error(function(data){ 
     data={ 
     ... 
     }; 
     $scope.liveCards=data; 
     callback(); 
    }); 
    } 
    getSnowStromeWarning(function(){ 
     console.log($scope.liveCards) 
    }); 
}); 
+1

Привет, Никил, спасибо, что он работает 5n –

+0

Хорошо, что это сработало для вас :) – nikhil