Показать сообщение отдельно
  #1 (permalink)  
Старый 19.06.2015, 16:34
Новичок на форуме
Отправить личное сообщение для PavelDevelop Посмотреть профиль Найти все сообщения от PavelDevelop
 
Регистрация: 06.08.2014
Сообщений: 2

resize и ajax data
Есть div'ы, в которые подгружаются изображения с сервера посредством ajax, количество которых в строке(table-row) нужно менять в зависимости от разрешения. Делаю:

$(window).resize(function () {
                
      $timeout.cancel($scope.resizing);

                
      $scope.resizing = $timeout(function () {

             $scope.projects.resize(); //здесь this.cache пустой.

       }, 300);
});

$scope.data = {
cache:[],
items:[],
resize:function(){
         var arr = [];

         var number = getWindowWidth() > 768 ? 4 : 3;

         for (var i = 0; i < 2; i++) {
                  arr.push(this.cache.splice(0, number));
         }

         this.items = arr;
}
};

$http.get('url',function(data){
    $scope.data.cache = data;

    $scope.data.resize(); // здесь все работает
});

function getWindowWidth() {
    return window.innerWidth
          || document.documentElement.clientWidth
          || document.body.clientWidth;
}


При загрузке изображений, все хорошо, после resize окна cache оказывается пустой. Почему scope не обновляется в функции? И как решить эту проблему?
Ответить с цитированием