骨干路由器无法识别

时间:2019-07-05 12:26:25

标签: javascript backbone.js backbone-routing

我正在尝试为骨干网创建一个路由器,并且希望将其与es6一起编写为类,因此我将其作为测试:

class MyRouter extends Backbone.Router {
  constructor() {
    super(arguments);
  }

  routes = {
    "*path": "error"
  }

  error(path) {
    console.log("in myRouter error")
    this.trigger("component", {
      content: require("./error404/")(path)
    });
    return this.setRoute("error");
  }
}

module.exports = new MyRouter();

但是由于某些原因,Backbone无法识别它,所以问题是,我遗漏了什么吗? 我必须告诉骨干网使用我的特定路由器吗?

1 个答案:

答案 0 :(得分:0)

原来的错误非常简单。您需要使用路由 调用超级,即

class MyRouter extends Backbone.Router {
  constructor(options) {
    super({ routes: { "*path": "error" }, ...options });
  }

  initialize() {
    this.prev = undefined;
  }

  setRoute(route) {
    this.prev = route;
  }

  error(path) {
    this.trigger("component", {
      content: require("./error404/")(path)
    });
    return this.setRoute("error");
  }
}

let router = new MyRouter();
module.exports = router;