Backbone.js 更改我的主干.js路由器
我有一个带有require.js、backbone.js和jquery的web应用程序。Backbone.js 更改我的主干.js路由器,backbone.js,Backbone.js,我有一个带有require.js、backbone.js和jquery的web应用程序。 应用程序的简要结构如下: 屏幕上有两个部分(工具栏和下面的主要内容) 有多个组件(地址管理、事件管理),每个组件都由哈希片段更改触发,并且需要 页面转换 有一个主干.js路由器。它是应用程序的核心。路由器被一个新的散列片段激活(手动输入, 后退按钮,菜单项选择) 到目前为止,在路由器中,我进行了页面转换,我直接调用所选组件的控制器(“主干中的视图”) 因此,有一个中央处理控制器调用 但现在必须改为分布式
应用程序的简要结构如下:
- 屏幕上有两个部分(工具栏和下面的主要内容)
- 有多个组件(地址管理、事件管理),每个组件都由哈希片段更改触发,并且需要 页面转换
- 有一个主干.js路由器。它是应用程序的核心。路由器被一个新的散列片段激活(手动输入, 后退按钮,菜单项选择)
有没有人已经有了这种架构,可以告诉我他在这方面的经验,或者有没有人用另一种方式解决了这一问题?我在这方面使用了类似的架构,尽管可能不太复杂。我在这方面做了很好的解释。快速概述:
- 我使用与卓别林的发布/订阅体系结构类似的单例
模型来管理更改应用程序状态的应用程序范围内的事件。这只是一个基本的主干模型,添加了一些方法来将属性序列化和反序列化为字符串,以便可以在URL中设置属性state
- 通过在
上设置属性来更改应用程序状态以响应用户交互或其他输入的应用程序组件app.state
- 当应用程序状态更改时需要更新的组件通过绑定到
上的app.state
事件来进行更新(看起来这正是卓别林的change
的工作方式,尽管它们重命名了方法以适应发布/订阅范式)mediator
- 我把我的路由器当作专门的视图,更新地址栏并响应用户在该区域的输入。更改地址(手动或通过单击链接)会导致路由器
对set()
模型进行必要的更改,其他所有内容都会相应更新app.state