我熟悉使用类似的东西:
$scope.gotoBottom = function(){
$location.hash('bottom');
$anchorScroll();
}
这是有效的..但是当我检索在ng-repeat中使用的数据并尝试在数据进入时调整大小时,我所看到的是一个问题。
示例(在控制器中):
users.get({userList:$routeParams.conversationId}, function(data){
$scope.userList = data;
$scope.gotoBottom();
})
gotoBottom方法正在快速启动,而ng-repeat正在查看$ scope.userList并根据它来建立它的表。
我希望能够在重新制作该列表后(或修改它时)切换gotoBottom。有没有更好的方法来实现这一目标?
谢谢!
答案 0 :(得分:3)
当AngularJs变量发生变化时,您可以使用$watch listener来触发gotoBotton。
$scope.ActivityList = new Array();
$scope.$watch("ActivityList", function () {
$scope.$evalAsync(function () {
$scope.DoSomething();
});
}, true);
$scope.DoSomething = function () {
$(function () {
//$scope.gotoBottom();
});
};
答案 1 :(得分:1)
此外,您可以在页面加载后运行滚动
angular.element($window).bind('load',
function() {
var element = document.getElementById("messages-list").lastElementChild;
element.id = "bottom";
/*-------------*/
$location.hash('bottom');
$anchorScroll();
}