0
我正在尝试在angularJS中进行一个小聊天。我使用div来显示我的消息,并且我希望我的div在页面加载时向下滚动。我创建了一个指令来做到这一点。
我的HTML:
<div id="myChat" style="height: 500px; overflow-y: scroll;border: 1px solid #ccc;border-radius: 4px;" scroll-bottom>
<div ng-repeat='message in chatMessagesArray'><span style="color:green">aaa</span><span> bbb</span></div>
</div>
我的角度指令:
.directive('scrollBottom', ['$timeout' , function ($timeout) {
return {
link: function (scope, element) {
$timeout(function() {
console.log($(element).scrollTop())
$(element).scrollTop($(element)[0].scrollHeight)
})
}
}
}
在控制台上,我看到的console.log的输出(),这是0,所以我知道该指令被触发,但第二行没有完成...你知道什么可能是错的?在MAC OS X + Chrome/FF上测试
谢谢,这工作正常。但是有没有一种方法可以告诉代码在DOM和信息加载后立即执行,而不是在1秒内随机放置一次? – Pechou
只是删除毫秒部分,它会在需要进程ID完成后自动调用。我已更新我的代码 –
我有完全相同的问题,当我删除毫秒...我猜数组还没有被填充,所以滚动不执行 – Pechou