【发布时间】:2011-11-26 18:19:17
【问题描述】:
我想要一种像下面这样的 RESTful URL 结构:
- /帐户
- /accounts/account/123
我的路线是这样设置的:
MyRouter = Backbone.Router.extend({ 路线:{ '/accounts': '帐户', '/accounts/account/:account': '帐户', }, 帐户:函数(){ console.log('账户调用'); }, 帐户:函数(){ console.log('帐号被调用'); }, });问题是,当我去 /accounts/account/123 时,两个 accounts()和 account() 被调用(因为 URL 匹配两个路由)。我尝试了诸如 /accounts$ 之类的路由,但它看起来在路由哈希中不受支持。
有没有办法做到这一点?手动 router.route(route, name, callback) 会起作用吗(尽管我真的不想这样做)。
【问题讨论】:
-
你试过了吗:
routes : { '/accounts/account/:account': 'account', '/accounts': 'accounts' },I.E.翻转它们? -
你好。我没试过。映射正确发生as per the docs。我只是好奇为什么要调用这些重复的函数。但是,当我直接调用 router.navigate 时,问题就解决了。但我仍在尝试找出如何处理浏览器栏和前进和后退按钮。