Backbone - 获取路由器参数并重新加载相同的路由

时间:2014-03-12 14:09:00

标签: backbone.js routes

我有一张桌子,我正在删除一行。当我删除这一行时,我想重新加载当前的Backbone路由,但很少有东西可以计算:

例如我在这条路线

“oneurl#顺序按姓名/页-8”

如果该页面上的表只有一条记录并且我将其删除,我想重定向到#order-by-name / page-7,所以我需要获取“page”参数。如果还有记录,我想“重新加载”相同的路径(如果有的话,添加下一页的行)。似乎不可能(https://github.com/jashkenas/backbone/issues/1214)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

正如你所链接的问题所讨论的那样(主要是jashkenas' trigger: true通常是代码气味"),你不应该真的使用这样的路线一个javascript应用程序。

你应该做什么:

  • 可以存储当前应用程序的状态(例如普通的javascript对象),该状态传递给函数,负责显示您想要的视图和数据
  • 删除行时,修改应用程序状态对象(例如,更改当前页面属性)并调用与上面相同的功能,再次传入配置
  • 仅在片段更改时才会使用navigate更新网址

相反,您的路由器应该解析url片段以生成上面讨论的配置对象,并调用该函数来呈现视图(传递配置信息)。

有关如何在不使用trigger: true的情况下管理路由的详细信息,请查看http://lostechies.com/derickbailey/2011/08/03/stop-using-backbone-as-if-it-were-a-stateless-web-server/free previewmy book(在木偶上,但同样适用于Backbone),其中还包含一章讨论路由处理。