backbone.js路由器,具有多个操作

backbone.js router with multiple actions

本文关键字:操作 js 路由器 backbone      更新时间:2023-09-26

有可能让backbone.js的路由特性决定多个操作吗?例如,我的单页应用程序可以打开多个选项卡,每个选项卡执行不同的操作。这可以做到吗?如果可以,如何做到?

如果我理解正确,这是不可能开箱即用的,因为Backbones路由机制将每条路由映射到一个回调。来自0.9.1文档

//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) {
     ...
});

因此,如果你需要传递多个回调,你需要覆盖路由函数来处理一系列回调,或者你可以在github上发布一个问题来激励它的实现。

当然,解决问题的一种更务实的方法是在路线定义之外处理映射,比如

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