【问题标题】:confusing google closure library api令人困惑的 google 闭包库 api
【发布时间】:2010-10-03 17:38:46
【问题描述】:

有人可以向我解释一下闭包是如何以更用户友好的形式工作的吗?它的帮助和文档真的让我无处可去。您如何执行简单的任务,例如选择和修改 dom(例如,选择页面上的所有内容并隐藏它们)?

【问题讨论】:

    标签: javascript google-closure-library


    【解决方案1】:

    参见http://derekslager.com/blog/posts/2010/06/google-closure-introduction.ashx,比较#4,

    隐藏所有div的:

    <html>
    <head>
    <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js" type="text/javascript"></script>
    <script language="JavaScript">
      goog.require('goog.dom.query');
      goog.require('goog.style');
    </script>
    <script> 
      function HideElement(selector) {
        goog.array.map(goog.dom.query(selector, null), function(e) { 
            goog.style.showElement(e, false); 
        });
      }
    </script>
    </head>
    <body>
       <div>div</div>
       <p>paragraph</p>
       <div>another div</div>
       <input type="button" value="hide" onclick="HideElement('div');"/>
    </body>
    </html>
    

    不过,无法帮助您进行用户友好的细分。

    【讨论】:

    • 这在谷歌搜索中一直显示很高,你能告诉我 query.js 去哪里了吗? third_pary 中的 query_test.html 工作正常,但是当我在 google/dom 中添加 query.js 并且 require 语句 goog.dom.query 仍然不可用。
    • 在 deps.js 文件的 goog 目录中我更改了 goog.addDependency('dojo/dom/query.js', 并且成功了。
    【解决方案2】:

    一开始我认为 API 文档真的很棒,但是在编写了几百行代码之后,我遇到了各种各样的怪癖和问题。例如,dom 模块文档没有明确的入口点来发现 dom 操作方法 -> 所有顶级链接都是指向它在内部使用的帮助对象。如果在包引用列表中单击 dom,然后单击 DomHelper,您可以找到一些有用的方法。不过,您似乎需要实例化 DomHelper 才能访问这些工具?

    幸运的是,他们确实在整个 API 文档的代码中都包含了方便的链接。如果您在 DomHelper 源代码中四处寻找,您会发现大多数列出的方法都可以直接从 goog.dom 命名空间获得!

    我的另一个主要抱怨是文档通常没有列出参数类型/名称/描述。例如,如果您展开 goog.dom.DomHelper.contains 它不会列出任何参数,但代码正确地注释了两个参数。我不敢相信他们制作了如此详尽的注释和文档库,然后未能将这些信息包含在(生成的)文档中!虽然在浏览他们的代码时,您也经常会在他们的注释中发现简洁且信息量不大的 cmets。

    所以,总结一下:阅读代码!我总是讨厌听到这个答案,但这似乎是目前最好的选择。

    我也有 O'Reilly Closure 这本书,虽然它确实提供了一些见解,但在实际使用库中提供的基本模式和工具方面仍然不是很深入。我真的很想更好地了解图书馆的各个部分是如何交互的。我想有人应该制作一本闭包工具食谱?

    【讨论】:

    • 我发现在代码中四处寻找比文档更有帮助。一切都很好的评论。
    猜你喜欢
    • 2013-01-04
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2022-01-17
    • 2018-02-26
    • 1970-01-01
    相关资源
    最近更新 更多