嵌套路由骨干

时间:2016-05-02 15:14:34

标签: javascript backbone.js views router nested-routes

我正在尝试使用Backbonejs实现嵌套路由:

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

我面临的问题是'/ a /:id'向服务器发出请求,我不想在转到/ a /:id /:secondId时执行另一个请求但是使用相同的页面/查看/模型并只更改子视图。

此外,我想跟踪历史,这似乎在回到之前的状态时会“初始化”。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你必须自己管理国家。我是这样做的

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() {

       });
   })
}

等等。 最佳实践也是使用Promise并最终链接它们

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