0

我刚开始学习 AngularJS,我创建了一个小 Web 应用程序来锻炼自己。这是一个“聊天”,因此用户编写了一条消息,该消息存储在$scope. <p ng-repeat="message in messages">{{message.user}}: {{message.text}}现在,当消息显示到视图 ( )时,我想将滚动条移动到底部。所以我做了类似的事情:

$scope.messages.push(obj);
$("#messages").prop({scrollTop: $("#messages").prop("scrollHeight")}); // jQuery method, is there something like that in AngularJS ?

但是,它不起作用。jQuery 方法本身有效,但我认为在调用它的那一刻,wiew 尚未更新(是吗?)。我该怎么做才能在每次更新此视图时调用该方法?

4

1 回答 1

1

我最近问了一个类似的问题,接受的答案解决了我的问题:当 Angular 由于数据更改而更新布局时如何调用函数

基本上,我将要调用的函数包装在另一个函数中。外部函数检查 $scope.$$phase 。如果它仍然是 apply 或 digest,我使用 $timeout 在 100 毫秒内重新调用外部函数。如果没有,那么我调用该函数。

于 2013-10-09T19:49:51.973 回答