Javascript EmberJS、jQueryUI和Grunt。

Javascript EmberJS、jQueryUI和Grunt。,javascript,jquery,jquery-ui,ember.js,gruntjs,Javascript,Jquery,Jquery Ui,Ember.js,Gruntjs,我正在集成Emberjs和jQueryUI。使用中提到的方法 一切似乎都正常 问题如下: 当我有 JQ = {}; 要声明一个新的名称空间,我遇到了这个错误(尽管它在浏览器上运行良好) JQ没有定义 当我声明与 var JQ = {}; Grunt没有显示错误,但它会在浏览器中停止工作 我研究了浏览器中的组合代码,如下所示 function(){ var JQ = {}; } ……代码的其余部分 因此,我确信它已声明,但浏览器无法看到它 所以我找不到问题所在?也不是解决办法 最佳,

我正在集成Emberjs和jQueryUI。使用中提到的方法

一切似乎都正常

问题如下:

当我有

JQ = {};
要声明一个新的名称空间,我遇到了这个错误(尽管它在浏览器上运行良好)

JQ没有定义

当我声明与

 var JQ = {};
Grunt没有显示错误,但它会在浏览器中停止工作

我研究了浏览器中的组合代码,如下所示

function(){
  var JQ = {};
 }
……代码的其余部分

因此,我确信它已声明,但浏览器无法看到它

所以我找不到问题所在?也不是解决办法

最佳,
Mohammad

当您使用var JQ={};结果是

function(){
  var JQ = {};
}
您的变量仅在该函数的范围内定义,这意味着您不能在闭包之外使用它。所以,当你使用JQ={};您的编译文件应包含:

function(){
  JQ = {};
}

它定义了全局命名空间中的变量。但是你说你得到的JQ没有定义,所以我建议你在定义变量之前检查一下你是否没有使用它。

如果你想使JQ成为全局的..将它声明为window.JQ={}


我认为问题可能只是林廷…将JQ添加到全球


为了确保jshint不会抛出错误..将JQ添加到.jshintrc文件中的全局列表中

您使用grunt运行的是什么???.我正在运行一个假设与jquery UI集成的EmberJS应用程序。好的,你用的是yeoman…我想问题可能只是linting…将JQ添加到全局…如果你想使JQ全局…将其声明为window.JQ={}我想你说到点子上了,你的分析很棒。如何使该变量在函数中成为全局变量,因为每个代码都包含在函数中,如果跳过变量前面的变量,它将成为全局变量。但是,没有定义JQ的错误并不是因为变量的定义,而是因为在变量定义之前使用了它。