2010-10-03 12 views
7

¿alguien podría explicarme cómo funciona el cierre en una forma más fácil de usar? Su ayuda y documentación no me llevan a ninguna parte realmente. ¿Cómo se realiza una tarea simple como seleccionar y modificar el dom (por ejemplo, seleccionar todo en la página y ocultarlos)?biblioteca de cierre de google confusa api

Respuesta

7

Ver http://derekslager.com/blog/posts/2010/06/google-closure-introduction.ashx, Comparación # 4,

Ocultar todos div 's:

<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> 

no le puede ayudar con la ruptura fácil de usar, sin embargo.

+1

buena fuente. gracias. – jirkap

+0

Esto sigue mostrándose muy alto en las búsquedas de Google, ¿podría decirme dónde va el query.js? query_test.html en third_pary funciona bien, pero cuando agrego query.js en google/dom y la declaración require goog.dom.query aún no está disponible. – HMR

+0

en el directorio goog en el archivo deps.js Cambié goog.addDependency ('dojo/dom/query.js', Y funcionó. – HMR

2

Pensé que los documentos API eran realmente geniales al principio, pero después de escribir unos cientos de líneas de código me encontré con todo tipo de peculiaridades y problemas. Por ejemplo, la documentación del módulo dom no tiene un punto de entrada claro para descubrir métodos de manipulación dom -> todos los enlaces de nivel superior son para ayudar a los objetos que utiliza internamente. Puede encontrar algunos métodos útiles, aunque si en la lista de referencia del paquete hace clic en dom, entonces DomHelper. Sin embargo, parece que necesita crear una instancia de DomHelper para obtener acceso a esas herramientas.

Por suerte, hizo incluye enlaces útiles al código en todos los documentos API. Si hurgas en la fuente de DomHelper, verás que la mayoría de los métodos listados están disponibles directamente desde el espacio de nombres de goog.dom.

Mi otra gran queja es que los documentos a menudo no incluyen tipos de argumentos/nombres/descripciones. Por ejemplo, si expandes goog.dom.DomHelper.contains, no muestra ningún argumento, pero el código anota correctamente dos argumentos. No puedo creer que hayan creado una biblioteca tan detallada y documentada, ¡y luego no incluyeron esa información en los documentos (generados)! Aunque al navegar por su código, a menudo encontrará comentarios escuetos y carentes de información en sus anotaciones.

Por lo tanto, para resumir: ¡lea el código! Siempre odio escuchar esa respuesta, pero parece ser la mejor opción en este momento.

Tengo el libro O'Reilly Closure también, y aunque proporciona algunas ideas, todavía no es muy profundo sobre el uso de patrones básicos y herramientas proporcionadas en la biblioteca. Realmente me gustaría una mejor visión general de cómo partes de la biblioteca están destinadas a interactuar. ¿Supongo que alguien debería hacer un libro de cocina de herramientas de cierre?

+0

Encuentro que hurgar en el código es mucho más útil que los documentos. Todo está bastante bien comentado – Ally

Cuestiones relacionadas