require.js
说明了在模块内定义对象的方式,其中define([requiremens], object)
是最好的方式。
因此,每个页面或其他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/消息,并返回object。
但是当我编辑带有请求的文件时,我不能通过代码导航,所以如果我想编辑消息对象,唯一的方法是自己打开文件并找到我需要的函数,而不是让IDE为我跳到那里。
有没有专门针对pycharm的或者require.js通用的解决方案来解决这个问题?当你有很多代码时,导航就会变得混乱,这就是为什么我首先使用IDE的原因!
更糟糕的是:编辑器永远不知道对象有什么函数!
我能看到的一种可能的解决方案是不使用封闭的名称空间,并在define()
调用之前声明全局变量,但在这种情况下,所有对象都应该像UI_Message,AJAX_Requests一样被调用。为了确定,我不会在两个不同的位置有一些消息...
我不确定require.js优化器是否会正确地使用它。Require.js文档声明非常清楚,远离全局变量。
https://stackoverflow.com/questions/8502682
复制相似问题