而不是拥有一个包含一堆“定义”的巨型js文件,我如何从其他文件中调用我的各种“定义”功能?
我一直在复制这些示例,但仍然无法使其正常工作:
example-multipage
example-multipage-shim
example-jquery-shim
这是我到目前为止的内容:
main.js
require.config({
baseUrl: '',
paths: {
jquery: '../libraries/jquery-1.10.2.min',
simControlView: '../javascripts/simControlView'
}
});
require(['jquery','loadPage'], function( $,loadPage)
{
loadPage();
});
define('loadPage', ['jquery'], function($)
{
var simControlView = require(['./simControlView']);
return function()
{
simControlView.showSimControlView(); //having problem here
};
});
simControlView.js
define(['jquery'], function ($) {
return {
showSimControlView: function () {
console.log("Hi!!");
}
}
});
这是我得到的错误:
未捕获的TypeError:对象函数d(e,c,h){var
g,k; f.enableBuildCallback &&((c && H(c))&&(c .__ requireJsBuild =!0); if(“ string” === typeof
e){if(H(c))return v(A(“ requireargs”,“无效的要求
call“),h); if(a && s(N,e))return Ne; if(j.get)return
j.get(i,e,a,d); g = n(e,a,!1,!0); g = g.id; return!s(r,g)?v(A(“ notloaded” ,'模块
尚未为上下文加载名称“'+ g +'”:'+ b +(a?“”:“。
require([]]“))):r [g]} K(); i.nextTick(function(){K(); k = q(n(null,a)); k.skipMap = f.skipMap ; k.init(e,c,h,{enabled:!0}); C()});返回
d}没有方法'showSimControlView'
看到我做错了什么吗?任何帮助表示赞赏!
最佳答案
尝试将所有依赖项移至传递给define()
的依赖项列表。
同样,排序可能很重要。即模块的define()
可能需要排在需要它的require()
之前(谈论'loadPage'
模块)。
另外,如果您的paths
配置调用模块'simControlView'
,则需要将其称为'simControlView'
,而不是'./simControlView'
。
例如。:
define('loadPage', ['jquery', 'simControlView'], function($, simControlView) {
return function() {
simControlView.showSimControlView();
};
});
require(['jquery', 'loadPage'], function($, loadPage) {
loadPage();
});