我喜欢Django如何做subj的方式。它允许在应用程序中定义“本地”URL,然后将它们包含在项目级别的根URL配置中并为它们定义前缀。
喜欢 - 本地网址为:that/<id>
,this/<slug>/
和整个应用的全局前缀 - verygoodapp/
。
在Backbone.js中,这可以通过root
函数的History.start()
参数来完成。
但在这种情况下,我需要做
History.start({root: arbitraryUrlPrefixForThatAppPassedAsArgFromAboveLocalSpace})
在每个应用程序中。
好吗? js gurus如何做到这一点?
UPD
我写了这个,并意识到我可能只需要写:
function(urlRoot) {
var MyRouter = Backbone.Router.extend({
routes: {
urlRoot + 'content/:slug': 'openArticle'
},
...
});
}
在全球项目空间中只做一次History.start()
。尚未测试。
UPD2
现在我认为像Django这样的reverse resolution of urls在使用Backbone时也很酷。 AFAIK Backbone路由器确实在一些集中的内部设施中注册他们的路线。