我正在尝试使用Backbonejs实现嵌套路由:
var Router = Backbone.Router.extend({
routes: {
'(/)': 'root',
'/a/:id: 'loadA,
'/a/:id/:secondId: 'loadA'
}
})
我面临的问题是'/ a /:id'向服务器发出请求,我不想在转到/ a /:id /:secondId时执行另一个请求但是使用相同的页面/查看/模型并只更改子视图。
此外,我想跟踪历史,这似乎在回到之前的状态时会“初始化”。
有什么想法吗?
答案 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(...)