BackboneJs路由器

时间:2016-05-11 18:26:41

标签: javascript backbone.js routing

所以,我试图用骨干做一个示例应用程序,但我不能让路由器工作,有什么问题,这有什么问题吗?谢谢。 这是我的路由器

var Workspace = Backbone.Router.extend({
    routes:{
      "":"mainView",
      "event":"event"
    },
    initialize: function(){
      console.log('Hai');
      //view = new MainView();
      //this.render(view);
      //alert( this.routes[Backbone.history.getFragment()] );
    },
    mainView: function(){
      console.log('Load main view');
      view = new MainView();
      this.render(view);
    },
    event: function(){
      view = new EventView();
      this.render(view);
    },
    render: function(view){
      if(this.currentView){
        this.currentView.destroy();
      }
      view.render();
      this.currentView = view;
    }
  });
  var router = new Workspace();

https://jsfiddle.net/ypuh8yqv/

路由器获得Initialized因为我看到了hai log

1 个答案:

答案 0 :(得分:2)

您必须启动Backbone的历史记录模块。创建路由器实例后添加此行:

$.each($('.content-cms').find('p, ol, ul, h2, h3, h4, h5, div:not(.button-row), a:not(.button)'), function(i, value) {
  console.log(value);
  $(value).html(ReplacePhoneNumbers($(value).html()));
});

如果您想使用推送状态历史记录(因此网址中没有哈希值),您可以启用推送状态:

Backbone.history.start();

更多信息,see the Backbone History docs