Есть 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 не обновляется в функции? И как решить эту проблему?