我有包含我的自定義功能,例如一個非AMD的JavaScript加載非AMD腳本時:未捕獲的錯誤:沒有定義調用由require.js
function getItemIndexById(items, id){
for(var i = 0; i < items.length; i++){
if(items[i].ID == id) return i;
}
return false;
}
//more than one define custom function here.
這裏main.js文件:
requirejs.config({
enforceDefine: true,
paths: {
"jquery": "libs/jquery/jquery-min",
"underscore": "libs/underscore/underscore-min",
"backbone": "libs/backbone/backbone-min",
"custom" : "libs/scripts/customejs"
},
shim: {
"underscore": {
deps: [],
exports: "_"
},
"backbone": {
deps: ["jquery", "underscore"],
exports: "Backbone"
}
}
});
然後,我定義我的觀點:
define(["jquery" ,
"underscore" ,
"backbone" ,
"custom"
],function($ , _ , Backbone, Custom){
//.....
}
我Uncaught Error: No define call for custom
得到一個錯誤。
我是否必須將自定義js轉換爲AMD?任何人都可以向我解釋這個問題。謝謝。
AMD無法神奇地知道您的腳本輸出了什麼。 – SLaks
我已經嘗試'出口:「自定義」'在'shim'中,但它沒有工作。 – Nothing
這些函數是在全局範圍內定義的嗎?如果是這樣,他們是命名空間? – stavarotti