TypeError:router .on()不是主干中的函数

时间:2013-07-23 05:46:46

标签: backbone.js

我是backbone.js的新手, 这是我的router.js:

define([
  'jquery',
  'underscore',
  'backbone'
], function($, _, Backbone ) {

    var AppRouter = Backbone.Router.extend({
      routes: {
        '*test': 'defaultAction'
      }
    });


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

      app_router.on('route:defaultAction', function (test) {
       //alert(2);
      });

      Backbone.history.start();
    };

    return { 
      initialize: initialize
    };
});

当我运行index.html时,在我的控制台浏览器中显示TypeError: app_router.on is not a function

谁能告诉我如何解决它?

1 个答案:

答案 0 :(得分:3)

也许你不应该在函数内部调用on,而是直接调用它

var AppRouter = Backbone.Router.extend({
  routes: {
   '*test': 'defaultAction'
   }
});

var app_router = new AppRouter;

app_router.on('route:defaultAction', function (test) {
 //alert(2);
});

并删除此

return { 
 initialize: initialize
};