我目前有一个包含多个常规页面的路由对象,并且还想添加一个顶级路由,其中第一个参数是用户名。
routes : {
'/' : 'main',
'/login' : 'login',
'/about' : 'about',
'/create' : 'create',
'/:username': 'getUser' //something like this
'*actions' : 'defaultHandler'
}
- 我该如何实现这一目标?
- 添加用户名路由,同时在找不到页面或用户时又依赖于操作,这会是糟糕的设计吗?
最佳答案
当您有一个名为“about”或“create”的用户时会发生什么?为您的路线命名并避免问题:
routes : {
'/' : 'main',
'/a/login' : 'login', // "a" for "application"
'/a/about' : 'about',
'/a/create' : 'create',
'/a/*actions': 'defaultHandler',
'/:username' : 'getUser'
}
那么您只需确保没有人将“a”作为用户名即可。如果您添加更多路由,此方法还可以保护您免受 future 冲突的影响。
关于javascript - Backbone.js 路由器动态第一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134405/