【问题标题】:Backbone Router doesn't appear to correctly Extending Router骨干路由器似乎无法正确扩展路由器
【发布时间】:2014-11-04 03:51:49
【问题描述】:
define([
 'jquery',
 'underscore',
 'backbone',
  'app',
  'models/sessionmodel',
  'views/home/homeview',

], function(
    $,
    _,
    Backbone,
    app,
    SessionModel,
    HomeView
){
  AppRouter = Backbone.Router.extend({

     initialize: function(options){},

     routes : {
       ''            :'showhome',
     },

    showhome : function(){
      this.show(new HomeView());
    },


    });

    return AppRouter;

});

这是我的 Main ,这是根据 Backbone 标准首次命中的。我有另一个名为 app 的文件,它创建了一个空对象并返回它...

require.config({
paths: {
jquery: 'libs/jquery/jquery-1.8.2',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-1.0.0-min',
text: 'libs/require/text',
router: 'router',
app: 'app'
},
shim: {
    jquery: {
        exports: '$'
    },
    underscore: {
        exports: '_'
    },
    backbone: {
        deps: ["underscore", "jquery"],
        exports: "Backbone"
    }
}
});

require(['app','router', 'models/sessionmodel'], function(app, AppRouter, SessionModel) {

    app.router = new AppRouter();
    app.session = new SessionModel();
    app.session.checkAuth({

        complete: function(){
            Backbone.history.start();
        }
    });
});

当我在控制台记录此内容时,路由器缺少其默认方法(特别是导航,但此外还有其他方法,如开、关、触发等)。

【问题讨论】:

    标签: jquery backbone.js require router


    【解决方案1】:

    您似乎没有检查记录对象的__proto__ 属性:

    【讨论】:

      【解决方案2】:

      你必须实例化它:var router = new AppRouter();

      【讨论】:

      • 我在我的主文件中添加了我实例化approuter的地方。很抱歉,谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多