Backbone.js路由器事件绑定未触发

我试图遵循 Organizing your application using Modules (require.js我正在努力了解路由的工作原理.

我不能让简单的绑定工作索引:

// Filename: router.js
define([
  'jquery','underscore','backbone','views/projects/list'
],function ($,_,Backbone,ProjectListView) {
    var AppRouter = Backbone.Router.extend({
        routes: {
            // Define some URL routes
            '': 'index'
        }
    });

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

        app_router.on('index',function () {
            alert("index"); // this never gets called
        });

        Backbone.history.start();

        return app_router;
    };
    return {
        initialize: initialize
    };
});

加载页面时没有任何反应.但这有效:

// Filename: router.js
define([
  'jquery',ProjectListView) {
    var AppRouter = Backbone.Router.extend({
        routes: {
            // Define some URL routes
            '': 'index'
        },index: function() { alert("works"); }
    });

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

        Backbone.history.start();

        return app_router;
    };
    return {
        initialize: initialize
    };
});

我错过了什么吗?

解决方法

好的,这就是它的完成方式:
var initialize = function () {
        var app_router = new AppRouter();

        app_router.on("route:index",function () {
            alert("hello world");
        });

        Backbone.history.start();

        return app_router;
    };

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...