谷歌关闭:goog.require找不到:goog.ui

时间:2014-02-01 18:23:19

标签: javascript google-closure

我正在学习谷歌关闭,当我尝试使用goog.ui组件(任何类)时,我收到错误goog.require could not find: 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克隆了这个版本。我没有编译,因为在这个阶段我只想弄清楚如何编写代码。

2 个答案:

答案 0 :(得分:4)

您可以对之前由goog.require()提供的元素使用goog.provide()

永远不会提供

goog.ui,因为它不是可以直接使用“静态”方法的组件或其他东西(例如,与goog.events方法相反的listen())。 它只是重新组合所有可视组件的命名约定。

但是,您可以执行goog.require('goog.ui.Component')goog.require('goog.ui.Button')

答案 1 :(得分:0)

我能够通过以下方式消除这种情况:

  1. 直接从google的git存储库加载base.js文件:http://closure-library.googlecode.com/git/closure/goog/base.js;

  2. 消除从任何子组件中分别要求'goog.ui'的企图;和

  3. require调用直接移到HTML头部(在脚本标记内),而不是将它们放在头部加载的脚本中。

  4. 这似乎并不完全令人满意。