// 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
};
});
答案 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'
}
}
现在我想你可以继续......