2016-10-31 6 views
0

Первый случай

angular.module('tss.application').controller("UserspaceController", function($scope, $http) 
{ 
     $http(
      { 
       url  : "/dirlist", 
       method : "GET", 
      }).then(function successCallback(response) 
      { 
       $scope.lists = response; 
      }, 
      function errorCallback(response) 
      { 
       window.alert("Dir list could not be get"); 
      }); 

}); 

Второй случай

angular.module('tss.application').controller("UserspaceController", function ($scope, $http) 
    { 
     $http.get('dirlist').success(function(data) 
     { 
      $scope.lists = data; 
     }); 
    }); 

Я новичок в Angularjs так что это может быть глупые вопросы. Во всяком случае, назначение переменных переменных работает во втором случае, но в первом. То есть второй может получить доступ к значениям «списков» внутри контроллеров. Я не понял, что не так с первым делом?

ответ

0

Попробуйте это:

angular.module('tss.application').controller("UserspaceController", function($scope, $http) 
{ 
     $http(
      { 
       url  : "/dirlist", 
       method : "GET", 
      }).then(function successCallback(response) 
      { 
       $scope.lists = response.data; 
      }, 
      function errorCallback(response) 
      { 
       window.alert("Dir list could not be get"); 
      }); 

}); 

Устаревшого success() метод передает два отдельных значения для данных и заголовков, но интерфейс обещает с помощью .then() проходит только один response значения, которое содержит данные и заголовки в качестве атрибутов.

Изменение в коде просто строка:

   $scope.lists = response.data; 
1
angular.module('tss.application').controller("UserspaceController", function($scope, $http) 
{ 
     $http(
      { 
       url  : "/dirlist", 
       method : "GET", 
      }).then(function successCallback(response) 
      { 
       $scope.lists = response.data; 
      }, 
      function errorCallback(response) 
      { 
       window.alert("Dir list could not be get"); 
      }); 

}); 

положить $ scope.lists = response.data ;, будет работать