【问题标题】:Router not working with require js and backbone路由器不适用于需要 js 和骨干网
【发布时间】:2014-06-10 15:00:23
【问题描述】:

主干版本 1.1.2 需要版本 2.0.2

//我的主文件

  require.config({
  paths: {
    jquery: 'assets/js/libs/jquery/jquery-1.9.1.min',
    underscore: 'assets/js/libs/underscore/underscore-min',
    backbone: 'assets/js/libs/backbone/backbone-min',
    bootstrap: 'assets/js/libs/bootstrap/bootstrap.min',
    text      : 'assets/js/libs/require/text',
    mustache: 'assets/js/libs/mustache/mustache'
  },
  shim: {
        'backbone': {
            deps: ['jquery','underscore'],
            exports: 'Backbone'
        },
        'bootstrap': {
            deps: ['jquery']
        }
  }

});

require([

  // Load our app module and pass it to our definition function
  'assets/js/app',
], function(App){

  App.initialize();

});

//我的应用文件

define([
  'jquery',
  'underscore',
  'backbone',
  'assets/js/router'
], function($, _, Backbone, Router){
  var initialize = function(){

    Router.initialize();
 }

  return {
    initialize: initialize
  };
});

//我的路由器文件

define([
  'jquery',
  'underscore',
  'backbone',
  'assets/js/views/trabajadores/list'
], function($, _, Backbone, TrabajadoresListView){

  var AppRouter = Backbone.Router.extend({

    routes:{

      '':'mostrarTrabajadores',
      'trabajadores': 'mostrarTrabajadores'
    },

    mostrarTrabajadores: function(){

      var trabajadoresListView = new TrabajadoresListView();
      trabajadoresListView.render();
    }

  });

  var initialize = function(){

    var app_router = new AppRouter; 
    Backbone.history.start();

  };

  return {
    initialize: initialize
  };

});

我正在检查代码,当以下代码行执行“var app_router = new AppRouter;”时,控制台显示:Uncaught TypeError: undefined is not a function。

路由器对我不起作用。为什么?

【问题讨论】:

  • 你能发布一个完整的堆栈跟踪,还有你的TrabajadoresListView吗?

标签: backbone.js require router


【解决方案1】:

您可以在初始化方法中声明您的路由操作。只需使用以下内容:

var initialize = function(){
  var app_router = new AppRouter;

  app_router.on('route:index', function() {
    console.log('index route');
  });

  return {
    initialize: initialize
  };

});

只要确保遵循路由器的“on()”方法中的“route:Action”格式即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多