在Backbone.MarionetteJS中使用appRouter

时间:2013-12-02 11:18:48

标签: javascript backbone.js routing url-routing marionette

我最近一直在使用Backbone.Marionette,在尝试模拟单页Web应用程序时遇到了一些问题。我创建了一个Plunker,它有一个动态生成的列表项菜单。我的目标是在各种菜单项之间设置路由,以便我可以动态更改内容。

只是看它是否有效我控制台应该记录路由器中的任何活动。可悲的是,没有任何事情发生,我不知道我做错了什么。 (我希望实现的目标:My previous test in AngularJS)。

我希望一些经验丰富的Backbone用户可以帮助我。

1 个答案:

答案 0 :(得分:0)

您没有使用Marionette控制器,因此请将RoutingAPI定义更改为:

var RoutingAPI = Marionette.Controller.extend({
  home: function(){
     console.log("Page: 'home'."); 
  },
  news: function(){ 
     console.log("Page: 'news'."); 
  },
  about: function(){
     console.log("Page: 'about'.");
  },
  contact: function(){ 
     console.log("Page: 'contact'.");
  }
});

像这样定义您的路由器:

ApplicationRouter = Backbone.Marionette.AppRouter.extend({
   appRoutes: {
      "": "home",
      "home": "home",
      "news": "news",
      "about": "about",
      "contact": "contact"
   }
});

并像这样使用

routingManager.router = new ApplicationRouter({controller :  new RoutingAPI()});
Backbone.history.start();

请注意,您还缺少Backbone.history.start();线。