【发布时间】:2012-03-20 13:59:23
【问题描述】:
我有我的引导文件,它定义了 require.js 路径,并加载了应用程序和配置模块。
// Filename: bootstrap
// Require.js allows us to configure shortcut alias
// There usage will become more apparent futher along in the tutorial.
require.config({
paths: {
bfwd: 'com/bfwd',
plugins: 'jquery/plugins',
ui: 'jquery/ui',
jquery: 'jquery/jquery.min',
'jquery-ui': 'jquery/jquery-ui.min',
backbone: 'core/backbone.min',
underscore: 'core/underscore.min'
}
});
console.log('loading bootstrap');
require([
// Load our app module and pass it to our definition function
'app',
'config'
], function(App){
// The "app" dependency is passed in as "App"
// Again, the other dependencies passed in are not "AMD" therefore don't pass a parameter to this function
console.log('initializing app');
App.initialize();
});
app.js 已按应有的方式加载,并且已加载它的依赖项。它的定义回调被调用,所有正确的依赖项作为参数传递。没有错误被抛出。但是,在引导程序的回调中, App 未定义!不传递任何参数。这可能是什么原因造成的?这是我的应用程序文件(修改空间)
// Filename: app.js
define(
'app',
[
'jquery',
'underscore',
'backbone',
'jquery-ui',
'bfwd/core',
'plugins/jquery.VistaProgressBar-0.6'
],
function($, _, Backbone){
var initialize = function()
{
//initialize code here
}
return
{
initialize: initialize
};
}
);
【问题讨论】:
-
您能否检查是否声明了多个版本的
define函数?此外,通常最好使用匿名定义。所以也许从模块中删除'app',代码。 -
如何检查是否声明了多个版本的
define?另外,我尝试过使用和不使用“app”声明 -
不敢说实话!但是如果有两个相互竞争的定义函数,那么模块的状态可能是不确定的,即使它们看起来正在工作(即执行传递给定义的“工厂”函数)。您可以尝试将您的应用程序剥离到最简单的部分并逐渐添加依赖项吗?
-
我已经剥离了它的所有依赖项,但它仍然没有通过
-
我无法使用您问题中的代码生成相同的错误...您可以提供更多信息吗?可以重现错误的页面是一个好的开始...
标签: javascript requirejs