Javascript 谷歌关闭:goog.require无法找到:goog.ui
我正在学习googleclosure,当我尝试使用Javascript 谷歌关闭:goog.require无法找到:goog.ui,javascript,google-closure,Javascript,Google Closure,我正在学习googleclosure,当我尝试使用goog.ui组件(任何一类)时,我得到了错误goog.require无法找到:goog.ui 我的代码是: goog.require('goog.dom'); goog.require('goog.json'); goog.require('goog.events'); goog.require('goog.ui.HoverCard'); goog.require('goog.positioning.AnchoredPosition'); go
goog.ui
组件(任何一类)时,我得到了错误goog.require无法找到:goog.ui
我的代码是:
goog.require('goog.dom');
goog.require('goog.json');
goog.require('goog.events');
goog.require('goog.ui.HoverCard');
goog.require('goog.positioning.AnchoredPosition');
goog.require('goog.positioning.Corner');
goog.require('goog.ui.Component.EventType');
goog.require('goog.ui');
其他组件(至少在我尝试加载任何ui元素之前)工作正常
有什么建议吗?大约两天前,我从git克隆了这个版本。我不是在编译,因为在这个阶段,我只是想弄清楚如何编写代码。我能够通过以下方式消除这种情况:
base.js
文件:http://closure-library.googlecode.com/git/closure/goog/base.js
'goog.ui'
与其任何子组件分开的企图;及require
调用直接移动到HTML头部(在脚本标记中),而不是将它们加载到头部的脚本中这似乎并不完全令人满意。您可以对以前由
goog.provide()提供的元素使用goog.require()
从不提供goog.ui
,因为它不是一个组件,也不是可以直接与“静态”方法一起使用的东西(例如,与具有listen()
方法的goog.events
相反)。
这只是一个重新组合所有可视组件的命名约定
但是,例如,您可以执行goog.require('goog.ui.Component')
或goog.require('goog.ui.Button')
一,。您以前在哪里加载base.js?2.我认为这是最重要的部分。没有goog.provide('goog.ui')
anywhere,仅提供goog.ui.Component
,等等@matrixprog我是从本地安装加载的,它是从git克隆的,但通过我的Web服务器加载的(也就是说,我托管我自己的副本)。我相信你是在未编译模式下运行的。确保您已将base.js
(以及您的DEP,如果它们存在)作为第一个脚本src标记加载,然后将goog.require
调用加载到它们自己的脚本标记中,最后将您的应用程序代码加载到另一个脚本标记中。@AlexLaertes您的评论是本页最有见地的内容。我当然不是在编译,你说得很对。如果你想把这个问题变成一个答案,我当然会接受。@Marcin我把这个问题传递给你:)你的问题有两个部分:无法要求goog.ui
命名空间(你不需要,由@JulCh建议),以及你必须将require调用从应用程序代码中分离出来(这是你最终发现的;我只是给你指出了原因)。