似乎angular.js和backbone.js都更喜欢用户更改浏览器状态(通过地址栏),然后他们将重新定义routes
。这仍然是一个单页的Web应用程序,但在我的情况下,当用户与应用程序交互时我真的不需要更改地址栏,我也希望尽可能地避免它。
作为angular.js和backbone.js中的新手,我在使用angular.js或backbone.js时如何构建我的单页Web应用程序时遇到困难,但没有触及地址栏。< / p>
我有一个node.js,jade和socket.io设置(没有express.js),socket.io是客户端和服务器之间的主要通信方式。
更具体地说,想象一下我正在加载dashbaord.jade,现在当socket.io检测到事件时,如何将一些局部注入主标记?我可以替换整个dashbaord.jade - 已经渲染的标记吗?
答案 0 :(得分:1)
那么问题是什么?不要更改网址!不要使用路由器,让你的应用程序只是通过鼠标(或键盘)事件与用户交互,或者只是更新每次插件发送事件的模型或视图!!
我的解决方案:不要创建任何router
,实现新类以使用套接字,并且通过套接字的任何事件执行适当的操作。在该类中为每个套接字事件定义一个方法,该方法加载模板和模型(可能从socketIO事件返回数据)并通过这些数据呈现视图。