2013-12-13 56 views
1

我的开发环境中有一个Closure环境运行良好。但是,在新的文件夹&文件中,它不起作用。关闭 - 无法正确加载库

例如,借此测试脚本:

goog.require('goog.dom'); 
console.log(goog); 
console.log(goog.dom); 
goog.dom.getElement('logout').innerHTML = "Heck"; 

这一切,加上在HTML中base.js

第一个console.log显示一个对象,所有正确的东西在那里。所有的文件也被加载到DOM中。

但是,第二个控制台日志说undefined,所以最后一行不起作用(很明显)。 Chrome控制台错误是Uncaught TypeError: Cannot call method 'getElement' of undefined

这是怎么回事?如果我尝试XhrIo也是一样。它没有找到goog对象上的方法。

谢谢。

回答

3

Documentation:

注意:不要把你的goog.require()语句在同一个脚本标签 为切入点,以代码使用goog.required功能或 类。 goog.require()调用将 包含该调用的脚本标记之后的代码添加到文档中。

所以

<script> 
    goog.require('goog.dom'); 
    console.log(goog.dom); 
</script> 

打印undefined。但

<script> 
    goog.require('goog.dom'); 
</script> 
<script> 
    console.log(goog.dom); 
</script> 

<script> 
    goog.require('goog.dom'); 
    addEventListener('load', function() { 
     console.log(goog.dom); 
    }); 
</script> 

打印的对象。可能的工作流程还有其他可能的工作流程。例如,closurebuilder.py脚本可以帮助提前加载所有需要的文件。

+0

美丽。谢谢:)我会接受分配的时间已过去...... – Nick