Tig*_*gra 19 javascript intellij-idea pycharm requirejs js-amd
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;
});
Run Code Online (Sandbox Code Playgroud)
现在,UI/Message以相同的方式定义,并返回对象.
但是当我用请求编辑文件时,我无法通过代码导航,所以如果我想编辑Message对象,唯一的方法就是自己打开文件并找到我需要的函数,而不是让IDE跳到那里为了我.
是专门针对pycharm还是针对require.js的一些解决方法来解决这个问题?当你有很多代码时,导航它就变得一团糟,这就是我首先使用IDE的原因!
更糟糕的是:编辑永远不知道对象有什么功能!
我可以看到的一种可能的解决方案是不使用封闭的命名空间,并在define()调用之前声明全局变量,但在这种情况下,所有对象都应该像UI_Message,AJAX_Requests一样被调用.为了确定,我在两个不同的位置没有一些消息....
我不确定,如果require.js优化器将正确使用它.Require.js文档说明非常清楚,远离全局变量.
这是一个众所周知的问题,请注明/投票.
从问题描述:
dojo库切换到AMD的格式define(),用于加载模块而不是dojo.require().以前我可以在dojo.require('path.to.someJs')上使用Ctrl + B来跳转到声明.这不适用于新格式define(['path/to/someJs]',...).
由于PyCharm,WebStorm,PhpStorm和IntelliJ IDEA共享相同的JavaScript插件,因此该问题也适用于您正在使用的产品.在修复此错误之前,您将继续观察所描述的问题.抱歉给你带来不便.
| 归档时间: |
|
| 查看次数: |
6062 次 |
| 最近记录: |