Angularjs 可从foreach函数内部访问角度范围

Angularjs 可从foreach函数内部访问角度范围,angularjs,foreach,scope,Angularjs,Foreach,Scope,在angular中有没有办法从foreach函数内部访问作用域 $scope.getPlowHistory = function() { $scope.plowId = $stateParams.plowId; SnowPlowService.getPlowHistory($scope.plowId).then(function(response) { $scope.plow = response; angular

在angular中有没有办法从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循环中


谢谢

我不是100%理解你想做什么,但有些事情看起来不对劲

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将分别包含三个元素

因此,为了回答您最初的问题,您可能没有定义,因为出于某种原因,results last元素为空。
我希望这就是您想要的,如果不是评论的话,我很乐意详细说明。

$scope应该是可以访问的,基于javascript闭包,除非该范围在承诺解决之前被销毁。您遇到了什么错误?尝试$scope.getPlowHistory=function(){…console.log($scope.Lat);}时出现“未定义”错误;在循环外部。访问它没有问题,但您正在覆盖循环每次迭代中的变量。是的……我怎么不这样做呢?您可能想要一个ArrayTanks,它帮助我理解循环中的变量。@nrunit如果我的答案对您有帮助,请将其标记为可接受的答案,以帮助建立我的声誉。