Car*_*ten 5 angularjs firebase
我有一个聊天程序。当应用程序加载时,我通过执行以下操作加载最后 5 条消息:
var chatRef = new Firebase("https://xxxx.firebaseio.com/chat/");
$scope.query = chatRef.orderByChild("Datestamp").limitToLast(5);
$scope.chatList = $firebaseArray($scope.query);
Run Code Online (Sandbox Code Playgroud)
我想让用户选择加载更多以前的消息。但我不确定如何加载前 5 条消息。我正在尝试这样的事情,但没有成功:
$firebaseArray(chatRef.orderByChild("Datestamp").endAt($scope.chatList[0].Datestamp).limitToFirst(5)).$loaded(function (data) {
data.forEach(function (d) {
$scope.chatList.push(d);
});
});
Run Code Online (Sandbox Code Playgroud)
所以基本上我的数据集是这样的:
消息 1
消息 2
消息 3
消息 4
消息 5
留言 6
消息 7
消息 8
消息 9
留言 10.
当我加载应用程序时,我说 limitToLast(5),它拉:
留言 6
消息 7
消息 8
消息 9
留言 10
现在我想加载前 2 条记录,
消息 4
消息 5
我怎样才能做到这一点?
您正在寻找endAt()。您需要传入收到的第一条消息的值,因此在您的例子中是消息 6 的时间戳。
chatRef.orderByChild("Datestamp").endAt(message6.Timestamp).limitToLast(3);
Run Code Online (Sandbox Code Playgroud)
您将在已显示的结果中收到消息 6。因此,您需要跳过结果中的最后一条消息。
| 归档时间: |
|
| 查看次数: |
1174 次 |
| 最近记录: |