我有以下requireJS配置.当试图引用包/ ImagingX模块时,我总是得到未定义,即使我可以看到脚本已经加载到firebug中.如果我将有问题的js文件移动到baseUrl目录并删除package /它按预期工作.
我究竟做错了什么?
window.requirejs.config(
{
baseUrl: '/Scripts',
paths: {
"jquery": "./jquery-1.7.1.min",
"jqx": "/Content/Plugins/jqWidgets",
"package" : "/Scripts/packages"
},
urlArgs: "bust=" + (new Date()).getTime(),
shim : {
'jqx/jqxcore': ['jquery'],
'jqx/jqxsplitter': ['jquery','jqx/jqxcore']
}
}
);
window.require(['jquery', 'layoutManager', 'container', 'package/ImagingX'],
function ($,lm,container,px) {
px.Focus();
$(document).ready(function () {
lm.Init(); // Sets up panes
container.Init(); //Set up the containers
});
});
Run Code Online (Sandbox Code Playgroud)
更新15/10/2012
我现在急需解决这个问题,我已经把所有内容都删回了基础,所以这里是新的主文件:
(function () {
requirejs.config({
paths: {
"packages": "packages"
}
});
require([
'packages/testmodule'
],
function (tm) {
alert(tm);
});
})();
Run Code Online (Sandbox Code Playgroud)
以及名为packages的子文件夹中的模块.
define('testmodule',
function () {
alert("called");
return {
set : 'rar '
};
});
Run Code Online (Sandbox Code Playgroud)
我可以看到脚本已加载但它永远不会被执行,因此我从来没有得到它的参考.

requirejs.config({
paths: {
//"jquery": "./jquery-1.8.2.min",
//"jqx": "/Content/Plugins/jqWidgets",
"templates": 'templates',
"text": "commonRequireJsModules/text",
"domReady": "commonRequireJsModules/domReady",
"packages" : 'packages/'
//'signalR': './jquery.signalR-0.5.3.min',
//'knockout': './knockout-2.1.0',
//'pubsub' : './pubsub'
}
//,urlArgs: "bust=" + (new Date()).getTime()
//,
//shim : {
// 'jqx/jqxcore': ['jquery'],
// 'jqx/jqxsplitter': ['jquery', 'jqx/jqxcore'],
// 'signalR': ['jquery'],
// 'pubsub' : ['jquery']
//}
});
Run Code Online (Sandbox Code Playgroud)
包路径上的尾部斜杠似乎已经解决了这个问题,部分还删除了模块定义部分中的名称。所以现在看起来像
define(['deps'],function(deps){
});
Run Code Online (Sandbox Code Playgroud)
而不是
define('myMod',['deps'],function(deps){
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2779 次 |
| 最近记录: |