require.js
陳述模塊內部定義對象的方式,define([requiremens], object)
是最好的方法。要求js遺址代碼導航
因此,每個頁面或其他js文件都將執行require()
調用和接收模塊作爲參數。
這工作得很好,每個功能/模塊都有自己的命名空間。
的問題是,我有:
// AJAX/Requests.js
define(['UI/Message'],function(Message){
var Requests={
checkResponse:function(response){
//1==ok
//0==error
//2==good message
//3==good message, but still stop
if(response.status==1){
return true;
}
else if(response.status==2){
Message.good(response.message);
return true;
}
else if(response.status==3){
Message.good(response.message);
return false;
}
else{
Message.bad(response.message);
return false;
}
}
};
return Requests;
});
現在UI /消息以相同的方式定義,並且將其返回對象。
但是當我用請求編輯文件時,我無法通過代碼進行導航,所以如果我想編輯Message對象,唯一的方法就是去打開自己的文件並找到我需要的函數,而不是IDE在那裏爲我跳。
pycharm是否有一些解決方法,或專爲require.js共同解決此問題?當你有很多代碼時,它會變得亂七八糟,所以我首先使用IDE!
更糟的是:編輯器永遠不知道對象具有哪些函數!
我可以看到的一個可能的解決方案是不使用封閉的名稱空間,並且在define()
調用之前聲明全局變量,但是在這種情況下,所有對象都應該調用像UI_Message,AJAX_Requests。爲了可以肯定,我沒有在兩個不同的位置有一些消息....
而我不確定,如果require.js優化器將正確使用此。 Require.js文檔說明非常明確,遠離全局變量。
這修復了嗎? – singsuyash 2017-01-15 16:16:41