嵌套路由 Backbone

Nested Routes Backbone

我正在尝试使用 Backbonejs 实现嵌套路由,如下所示:

var Router = Backbone.Router.extend({
    routes: {
         '(/)': 'root',
         '/a/:id: 'loadA,
         '/a/:id/:secondId: 'loadA'
    }
})

我面临的问题是“/a/:id”正在向服务器发出请求,我不想在转到 /a/:id/:secondId 时执行另一个请求,而是使用相同的请求page/view/model 并且只更改一个子视图。

此外,我想跟踪历史记录,似乎在返回到先前状态时触发 "initialize"。

有什么想法吗?

你必须自己管理状态。我是这样做的

var Router = Backbone.Router.extend({
    routes: {
         '(/)': 'root',
         '/a/:id: 'loadA,
         '/a/:id/:secondId: 'loadA'
    }
})

//root
function() {
   loadRootOnce(function() {
       //done, loads only once
   })
}

//loadA
function() {
   loadRootOnce(function() {
       loadAOnce(function() {

       });
   })
}

等等。 最佳实践也是使用 Promises 并最终将它们链接起来

喜欢$.when(bootstrap()).then(...)