如何做牵线木偶的路线?

时间:2014-09-30 02:06:50

标签: backbone.js marionette

我需要在木偶中使用一条小路。

例如,我有用户jane bob alice,我希望他们能够通过以下方式访问他们的个人资料:

http://example.com/#jane
http://example.com/#bob
http://example.com/#alice

但是,如果我想挑出路线,#edit去其他地方,例如,他们的编辑页面。

Backbone / Marionette有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

所以你可以使用正常的路线做到这一点,但声明它们的顺序变得很重要,这很糟糕

appRoutes: {
    "some_part_of_app/edit": "showEditPage",
    "some_part_of_app/:username": "showProfilePage",
}

以这种方式它将尝试匹配路由与编辑首先然后当它失败时它将匹配下一个路由,如果这是相反的方式它总是匹配/:用户名路由。

但如果我这样做的话,我会让路线更具描述性,完全避免这个问题

appRoutes: {
    "some_part_of_app/profile/:username/edit": "showEditPage",
    "some_part_of_app/profile/:username": "showProfilePage",
}
通过这种方式,从资源被采取行动的路线中可以清楚地看出,你必须依靠声明的顺序来解决所有情况。

或另一个选项是使用像https://github.com/boazsender/backbone.routefilter这样的插件,它允许您预先过滤路线并确保编辑转到编辑路线,并且:用户名转到用户名。