每当有新消息到达时,我都可以使用JQuery追加在浏览器上显示来自 RabbitMQ SockJS Server 的实时推送消息。但是,我无法弄清楚如何以降序显示Kendo UI移动ListView(Kendo版本2013.3.1119)上的消息 - 顶部的新消息。这应该在用户不介入刷新ListView的情况下完成。
我已经创建了一个测试并发布在JSBin上 - link
关于JSBin示例的说明:
1)。 Stomp.js( STOMP over websocket )和sockjs.js( SockJS Javascript client )用于创建从RabbitMQ SockJS Server捕获消息的websocket客户端。
对于JSBin示例,我已将我的Javascript代码(与listener-app.js - 请参阅 - http://pastebin.com/6qLxH8R6 )一起添加到SockJS Javascript客户端(sockjs.js)因为我无法让JSBin在一个单独的文件中使用listener-app.js。组合脚本现在是stomp-listener-app.js。请注意,我在本地测试时没有遇到此问题。
2)。有2个导航按钮,“实时ListView”和“调试日志”。 Debug Log捕获stomp.js调试消息,这些消息将使用JQuery append显示在“Debug Log”视图中。实时ListView视图假设在列表视图中显示STOMP消息 - 我无法这样做。
3)。虽然JSBin示例没有链接到实时SockJS服务器,但是STOMP库仍然会生成一些可以被Kendo UI捕获的错误消息。
我是JS和Kendo UI的初学者。如果我遗漏了任何东西,请告诉我。任何指针都将非常感激。谢谢。
答案 0 :(得分:0)
我可以使用prepend/append method在列表视图的顶部插入新消息。
例如:
$("#datalistlistView").data("kendoMobileListView").prepend([{message: 'test'}]);
此代码可以插入到从html页面链接的任何JS文件中。
关键要求是代码必须在listview初始化后才能运行,否则将出现“Uncaught TypeError:无法调用方法'prepend'of null”错误。