2012-03-18 58 views
1

是否有可能让backbone.js的路由功能确定多个动作?例如,我的单页应用程序可以打开多个选项卡,每个选项卡执行不同的操作。这可以做到,如果是这样,怎么做?backbone.js路由器有多个动作

+0

到目前为止,我有没有历史的支持。如果你点击后退按钮或刷新,你会失去一切。我期待修复 – LordZardeck 2012-03-18 02:28:32

回答

3

如果我正确地理解了你,那么开箱即可实现此功能,因为Backbone路由机制将每条路由映射到单个回调。从0.9.1 docs

//Implementation 
route: function(route, name, callback) {} 

//Usage: "Manually bind a single named route to a callback. For example:" 
this.route('search/:query/p:num', 'search', function(query, num) { 
    ... 
}); 

所以,如果你需要传递多个回调,你需要重写路由功能处理回调的阵列 - 或者你可以发布一个issue at github激励的实施。

一种更务实的态度,以您的问题当然是要处理的映射路线定义之外,像

routes: { 
    "routeA": "actionA", 
    "routeB": "actionB", 
    "routeC": "actionCompound" 
    }, 
    actionA: function() { 
    //... 
    }, 
    actionB: function() { 
    //... 
    }, 
    actionCompound: function() { 
    this.actionA(); 
    this.actionB(); 
    } 
+0

感谢您的解释 – LordZardeck 2012-03-18 15:21:17