require.js
モジュール内でオブジェクトを定義する方法をdefine([requiremens], object)
as best way で示します。
したがって、すべてのページまたは他の 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 を使用します。
さらに悪いことに、エディターはオブジェクトが持つ機能をまったく知りません!
私が見ることができる1つの可能な解決策は、囲まれた名前空間を使用せず、define()
呼び出しの前にグローバル変数を宣言することですが、この場合、すべてのオブジェクトはUI_Message、AJAX_Requestsのように呼び出されます。確かに、2 つの異なる場所にメッセージがないことを確認するために....
そして、require.jsオプティマイザーがこれを正しく使用するかどうかはわかりません。Require.js のドキュメントには、グローバル変数に近づかないように、非常に明確に記載されています。