router.js函数未执行

时间:2013-11-16 10:13:54

标签: javascript php backbone.js requirejs underscore.js

// Filename: router.js
console.log('TEST ROUTE');
define([
    'jquery',
    'underscore',
    'backbone',
    'views/jobs/list'
], function($, _, Backbone, JobListView){
    var AppRouter = Backbone.Router.extend({
        routes: {
            // Define some URL routes
            '/dalo/jobs': 'showJobs',

            // Default
            '*actions': 'defaultAction'
        }
    });

    var initialize = function(){
        var app_router = new AppRouter;
        app_router.on('route:showJobs', function(){
            // Call render on the module we loaded in via the dependency array
            // 'views/jobs/list'
            console.log('Show Job Route');
            var jobListView = new JobListView();
            jobListView.render();

        });

        app_router.on('defaultAction', function(actions){
            // We have no matching route, lets just log what the URL was
            console.log('No route:', actions);
        });
        Backbone.history.start();
    };
    return {
        initialize: initialize
    };
});

我的main.js的一部分,我没有使用NEW,因为它给出的问题是它不是一个功能,不确定它是否与上面的错误有关

require(['app'], function(AppView){
    AppView.initialize();
});

我在Router.initialize()之后做了一个console.Log;在app.js,它可以显示。我也在这个应用程序router.js上面一直做了一个控制台日志,它也显示,除此之外,它没有在函数内显示任何内容。

控制台仅显示2个控制台日志(在Route.Initialize& Before router.js之后定义

有什么建议吗? 我正在使用http://backbonetutorials.com/organizing-backbone-using-modules/

我的App.js

define([
    'jquery',
    'underscore',
    'backbone',
    'router', // Request router.js
], function($, _, Backbone, Router){
    var initialize = function(){
        // Pass in our Router module and call it's initialize function
        Router.initialize();
        console.log('Router Initialized');
    }

    return {
        initialize: initialize
    };
});

1 个答案:

答案 0 :(得分:1)

可能你正在使用Backbone.js和Underscore.js的非AMD 版本。

这样你就可以将你所谓的“shim”添加到你的main / config文件中。

  

shim :为不使用define()声明依赖项并设置模块值的旧的传统“浏览器全局”脚本配置依赖项,导出和自定义初始化。   http://requirejs.org/docs/api.html#config-shim

正如您所看到的那样设置依赖项并导出您的lib,以便您在脚本中使用它。

因此,在您的main / config文件中,在路径尝试添加此填充部分之后:

paths: {
    ...
},
shim: {
    'backbone': {
        deps: ['jquery','underscore'],
        exports: 'Backbone'
    }
}   

现在我想你可以继续......