2015-04-28 4 views
0

Когда я получаю результат от моего http-запроса, я хочу изменить область. Для теста я пытался отобразить сферу, прежде чем сделать запрос HTTP, и после его успеха:Я не могу изменить область внутри функции

$scope.CopyFiles=function(destination){ 
    for(var i=0; i<$scope.list.length; i++){ 
    console.log("test 1 "+$scope.list[i]); 

    var response=$http({method: 'GET', url:  
      '/checkIsSubdir/'+$scope.list[i]+'/'+destination}); 

    response.success(function(result) { 
     console.log("check"+result.data); 
     console.log("test 2 "+$scope.list[i]); 
    }); 
    response.error(function(data, status, headers, config) { 
     console.log("checksubdir oops"); 
    }); 
    }; 

моего запрос HTTP имеет, так как он преуспел отображается мой result.data.

моя проблема заключается в том, что первый console.log("test 1 "+$scope.list[i]); отображает область применения, но console.log("test 2 "+$scope.list[i]); отображает неопределенных

как сделать, чтобы это исправить?

ответ

1

Просто ваш код выполняется асинхронно внутри цикла for.

Это потому, что ваш цикл делает Ajax вызова & конца, когда значение не выполняется для условия цикла в то время значения i будет +1, чем $scope.list.length, так вот почему вы получаете $scope.list[i] значения не определены.

В этом случае использование angular.forEach бы решить вашу проблему, здесь значение индекса доступно при том, что для достижения успеха петли

angular.forEach($scope.list, function(value, index){ 
    console.log("test 1 "+$scope.list[index]); 

    var response=$http({method: 'GET', url:  
      '/checkIsSubdir/'+$scope.list[index]+'/'+destination}); 

    response.success(function(result) { 
     console.log("check"+result.data); 
     console.log("test 2 "+$scope.list[index]); 
    }); 
    response.error(function(data, status, headers, config) { 
     console.log("checksubdir oops"); 
    }); 
}); 
+0

Я изменил его, но я до сих пор та же проблема – Yuri

+0

вы могли бы создать plunkr для того же? –

+0

нет Я не могу, так как я использую локальный веб-сервис – Yuri

Смежные вопросы