我是Require.js的新手,我正在尝试做一些我认为很简单的事情但是开始变得很痛苦.
我正在尝试为我的Backbone应用程序定义一个全局命名空间,并将其作为模块加载.这是我的命名空间(main.js):
@H_404_8@define( ['jquery','underscore','backbone','GlobalRouter' ],function($,_,Backbone) { var App= { Models: {},Views: {},Collections: {},Routers: {},init: function() { new App.Routers.GlobalRouter(); Backbone.history.start(); } } return App; });
这是我的config.js文件:
@H_404_8@require.config({ // your configuration key/values here baseUrl: "js",// generally the same directory as the script used in a data-main attribute for the top level script paths: { 'jquery' : '//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min','underscore': 'vendor/underscore-min','backbone': 'vendor/backbone-min','marionette': 'vendor/backbone.marionette','main' : 'main' },// set up custom paths to libraries,or paths to RequireJS plugins shim: { 'underscore': { exports: '_' },'backbone': { deps: ['underscore','jquery'],exports: 'Backbone' },'main' : { deps: ['underscore','jquery','GlobalRouter'],exports: 'TEWC' } } // used for setting up all Shims (see below for more detail) }); define([ 'jquery','main' ],Backbone,App,GlobalRouter) { console.log(App) alert('hit ') $(function() { App.init(); }); }
);
好的方法,这是我的路由器:
@H_404_8@define([ 'jquery',TEWC) { TEWC.Routers.GlobalRouter = Backbone.Router.extend({ routes: { "" : "index","documents/:id" : "edit","login" : "login" },edit: function(id) { alert('edit') },index: function() { alert('index') },login: function() { alert('login') } }); });
在过去,我得到一个’app is undefined error’.现在,几分钟后我收到加载超时错误,说明:
@H_404_8@Uncaught Error: Load timeout for modules: main
但是,警报不会触发,并且main.js似乎没有加载,但我相信路由器确实如此,并且它没有吠叫TEWC未定义 – 所以它可能正在加载,即使它不在我的网络标签?
这可能是一个新手问题 – 有没有人对此有任何见解?
最佳答案