【问题标题】:angular.js/backbone.js without changing the address barangular.js/backbone.js 不改变地址栏
【发布时间】:2013-10-20 16:35:51
【问题描述】:

似乎 angular.js 和backbone.js 都更喜欢用户更改浏览器状态(通过地址栏),然后他们将针对定义的routes 重新采取行动。那仍然是一个单页 Web 应用程序,但就我而言,当用户与应用程序交互时,我真的不需要更改地址栏,我也希望尽可能避免它。

作为 angular.js 和backbone.js 的新手,我在使用angular.js 或backbone.js 时如何构建我的单页Web 应用程序时遇到了困难,但不接触地址栏。

我有一个node.js,jade和socket.io设置(没有express.js),socket.io是客户端和服务器之间通信的主要方式。

更具体地说,假设我正在加载 dashbaord.jade,现在如何在 socket.io 检测到事件时将一些部分注入到主标记中?我也可以替换整个 dashbaord.jade - 已经渲染的标记吗?

【问题讨论】:

  • 那么问题出在哪里?不要更改网址!不要使用路由器,让您的应用程序仅通过鼠标(或键盘)事件与用户交互,或者每次套接字发送事件时更新模型或视图!
  • @KiTO 嘿!任何参考,教程,类似的问题?我被困在那里了……你说的正是我在这里要问的!
  • 好的,问题很大。 Backbone 方式(我不熟悉 angular、jade 和 node!):不要创建任何路由器。这很简单! Impelement 使用套接字的新模型并通过任何套接字事件执行适当的操作。在该模型中,当套接字发送事件(IO.on('event'))时,加载模板(如何!donno 玉方式!)加载模型(可能是来自套接字事件的数据)并渲染视图。我还没有看到任何关于这个特定问题的教程。
  • @KiTO 谢谢!我会试一试...如果您将其发布为答案,我也会投票!

标签: node.js angularjs backbone.js socket.io pug


【解决方案1】:

那么问题是什么?不要更改网址!不要使用路由器,让您的应用只通过鼠标(或键盘)事件与用户交互,或者每次套接字发送事件时更新模型或视图!

我的解决方案:不要创建任何router,实现新类以使用套接字并通过任何套接字事件执行适当的操作。在该类中为每个套接字事件定义一个方法,加载模板和模型(可能从 socketIO 事件返回数据)并通过这些数据呈现视图。

【讨论】:

    猜你喜欢
    • 2015-09-12
    • 2016-03-25
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多