2014-02-04 3 views
3

Я знаком с помощью что-то вроде:прокрутки вниз страницы после доставай AngularJs запроса

$scope.gotoBottom = function(){ 
    $location.hash('bottom'); 
    $anchorScroll(); 
} 

и это работает .. но то, что я вижу, является проблемой при получении данных, который используется в нг-повтора и попытки изменить размер при том, что данные поступают в

Пример (контроллер):.

users.get({userList:$routeParams.conversationId}, function(data){ 
     $scope.userList = data; 
     $scope.gotoBottom(); 
}) 

метод gotoBottom стреляет, чтобы быстро, в то время как нг-повтор смотрит на $ scope.userListd buidling это таблица основана на этом.

Я хочу, чтобы иметь возможность переключать gotoBottom после того, как этот список был переделан (или всякий раз, когда он был изменен). Есть ли лучший способ достичь этого?

Спасибо!

ответ

2

Вы можете использовать $watch listener, чтобы стрелять gotoBotton при изменении переменной AngularJs.

$scope.ActivityList = new Array(); 

$scope.$watch("ActivityList", function() { 
    $scope.$evalAsync(function() { 
     $scope.DoSomething(); 
    }); 
}, true); 

$scope.DoSomething = function() { 
    $(function() { 
     //$scope.gotoBottom(); 
    }); 
}; 
1

Также вы можете запустить прокрутку дна после загрузки страницы

angular.element($window).bind('load', 
    function() { 
    var element = document.getElementById("messages-list").lastElementChild; 
    element.id = "bottom"; 
    /*-------------*/ 
    $location.hash('bottom'); 
    $anchorScroll();  
} 
Смежные вопросы