可以从foreach函数

时间:2017-01-11 22:52:00

标签: angularjs foreach scope

有没有办法从角度中的foreach函数内部访问范围?

 $scope.getPlowHistory = function() {
       $scope.plowId = $stateParams.plowId;
       SnowPlowService.getPlowHistory($scope.plowId).then(function(response) {
            $scope.plow = response; 

            angular.forEach($scope.plow,function(value,index){
                $scope.Lat =  value.Latitude;
                $scope.Lng =  value.Longitude;                      
            });
        });
    };  

我需要$ scope.Lat和$ scope.Long才能在$ scope.getPlowHistory()中使用,而不只是在foreach循环中。

谢谢!

1 个答案:

答案 0 :(得分:1)

我并不是百分之百了解你要做的事情,但看起来不对。

angular.forEach($scope.plow,function(value,index){
     $scope.Lat = value.Latitude;
     $scope.Lng = value.Longitude;                      
});
  

您的代码实际上是使用响应的最后一个元素的值更新$ scope.Lat和$ scope.Lng。

我认为你要做的是这样的事情:

angular.forEach($scope.plow,function(value,index){
     $scope.Lat[index] = value.Latitude;
     $scope.Lng[index] = value.Longitude;                      
});
  

因此,如果您的结果包含三个元素,$ scope.Lat和$ scope.Lng将包含三个元素。

因此,为了回答您的原始问题,您可能未定义,因为结果最后一个元素由于某种原因是空的。

我希望这就是您所寻找的,如果不是评论,我将很乐意详细说明。