骨干路线没有射击

时间:2017-04-07 01:25:48

标签: backbone.js backbone-routing

这应该是超级基本但我不能让路由工作。我应该提到应用程序位于名为/ dist /的子目录中。这是我的代码:

    var QuestionRouter = Backbone.Router.extend({

    routes: {
      "/dist/" : "startTest"
      "dist/:id": "getModel"
    },

    startTest: function(){
      console.log('home called')
    },

    getModel: function(){
        app.getModel(id);
    }

});


  var app = new QuestionView;
  var appRouter = new QuestionRouter;
  Backbone.history.start({pushState: true});

触发此路线的网址为:

    www.example.com/dist/
    www.example.com/dist/12345

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您需要使用#(哈希符号)。

  

Backbone路由器用于路由您的应用程序URL   使用哈希标签(#)

这是Backbone教程的引用:What is a router?

请参阅Backbone's Router documentation

然后您的路线将是:

www.example.com/#/dist/
www.example.com/#/dist/12345

您也可以使用Backbone routes without hashes

答案 1 :(得分:0)

好的,所以我能够解决这个问题:

  1. 我的路由哈希应该如下所示:

    路线:{   “”:“startTest”,   “:id”:“getModel” }

  2. 我不得不删除pushState:true,这样就没有触发路由,不知道为什么:

    Backbone.history.start();