Маршрутизатор backbone.js с несколькими действиями - PullRequest
1 голос
/ 18 марта 2012

Возможно ли, чтобы функция маршрутизации backbone.js определяла несколько действий? например, мое одностраничное приложение может иметь несколько открытых вкладок, каждая из которых выполняет различные действия. Можно ли это сделать, и если да, то как?

1 Ответ

3 голосов
/ 18 марта 2012

Если я правильно вас понимаю, этого невозможно добиться сразу после установки, поскольку механизм маршрутизации магистральных каналов сопоставляет каждый маршрут с одним обратным вызовом. Из 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();
  }
...