刷新页面时出现未捕获的类型错误,我的 js/app/main.js 文件无法调用 js/app/utilities 上的 update() 方法/resize.js.
错误输出
Uncaught TypeError: Object function U(n){return n&&typeof n=="object"&&!me(n)&&ne.call(n,"wrapped")?W(n)} has no method 'update'
不幸的是,我没有设法将问题隔离/复制到简化的工作示例中。但您可以单击下面文件夹树中的 js 文件来了解要点。
- index.html
- js/
app.js
require.config({
urlArgs: "bust=" + (new Date()).getTime(),
baseUrl: WP.THEME_URL+"/js",
paths: {
app : "app"
, jquery : "lib/jquery-2.0.2.min"
, ...
, resize : "app/utilities/resize"
, ...
}
});
require(["app/main"],function(){});
正在从 main.js 在 resize.js 上调用方法 update();
main.js
define([ 'require' , 'jquery' , ... ,'resize' ], function( require , $ , ... , resize ) {
...
function setup() {
resize.update(); // Uncaught TypeError happens here
}
$doc.ready( setup );
resize.js
define([],function () {
var resizeItems = [],
update = function () {
for (i = 0; i < resizeItems.length; i++){
var item = resizeItems[i];
item.callback( App.screen.width , App.screen.height );
}
};
return {
update : update,
add : function( item ) { resizeItems.push( item ); }
}
});
提前致谢
<小时/>编辑:这似乎是一个依赖性问题。在 app.js 上的 require 中添加“resize”已经解决了这个问题;
require(["resize","app/main"],function(){});
我认为在 main.js 中向 Define() 提供“resize”将确保正确的 deps;
define([ 'require' , 'jquery' , ... ,'resize' ], function( require , $ , ... , resize )...
最佳答案
这似乎是一个依赖性问题。
在app.js中的require()中添加“resize”已经解决了这个问题;
require(["resize","app/main"],function(){});
我认为在 main.js 中向 Define() 提供“resize”将确保正确的 deps;
define([ 'require' , 'jquery' , ... ,'resize' ], function( require , $ , ... , resize )...
关于javascript - Require.js : Uncaught TypeError: Object function . ..没有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040533/