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