2012-06-13 23 views
12

Soy nuevo en el uso de Jade, y es impresionante hasta ahora.Jade: atributos de elemento sin valor

Pero una cosa que tengo que pasar es un elemento con 'itemscope' propiedad:

<header itemscope itemtype="http://schema.org/WPHeader"> 

Mi notación Jade es:

header(itemscope, itemtype='http://schema.org/WPHeader') 

Pero resultado es:

<header itemscope="itemscope" itemtype="http://schema.org/WPHeader"> 

¿Cómo puedo asegurarme de obtener el resultado correcto - itemscope en lugar de itemscope="itemscope"?

+1

itemscope = "itemscope" funcionará igual de bien que simplemente itemscope. Parece que ese es el comportamiento predeterminado de Jade. Yo solo iría con eso. – jwerre

Respuesta

6

he intentado en un proyecto Express.js/Jade y el resultado que obtengo es:

<header itemscope itemtype="http://schema.org/WPHeader"></header> 

También probé en bash y cuando me siento el mismo resultado que usted.

Me gustaría ir con la siguiente sugerencia o crear un problema en Github.

itemscope = "itemscope" funcionará tan bien como solo itemscope. Parece que ese es el comportamiento predeterminado de Jade. Yo solo iría con eso.

+0

Gracias. Extraño ese resultado es diferente. Bien, irá con esto. –

+0

Esto sigue apareciendo en las búsquedas de Google. La solución correcta para mí fue establecer el atributo igual a la cadena vacía. – HasFiveVowels

12

A veces no funciona del todo bien - al igual que con contentEditable Jade intenta detectar doctypes html5 y luego hace <header itemscope itemtype="http://schema.org/WPHeader"></header> si lo encuentra. El problema es que si tiene plantillas que está insertando en la página, no puede decir que es html5.

Lo que puede hacer es la fuerza html5 compilación pasando en {doctype: '5'} a las opciones - hizo esto para requerir-jade: https://github.com/ibash/require-jade/commit/754cba2dce7574b400f75a05172ec97465a8a5eb

+5

Creo que la sintaxis ahora es '{doctype: 'html'}' – Jay

1

que tenía el mismo problema, y ​​la solución más fácil en mi caso estaba añadiendo al doctype 5 la parte superior de mi documento de jade. Eso aparentemente le permite a Jade usar atributos sin un valor. ibash me puso en el camino correcto con su respuesta, así que gracias por eso

+2

El compilador dice que: doctype 5 está en desuso, use html en su lugar.Por lo tanto, solo escribo doctype html justo antes de html (lang = en). FYI. – ankakusu

10

Tuve el mismo problema al usar la directiva angular ng-include. Se obtiene ng-include = "ng-include" y luego el include no funciona.

Lo que funciona para mí es utilizar una cadena vacía como valor, es decir, ng-include = "".

+1

Sí, he estado pasando algo de tiempo tratando de hacer que jade siga adelante, pero definitivamente no fue escrito teniendo en cuenta el angular – ditoslav

6

He aquí la respuesta de los desarrolladores de jade: se debe utilizar

doctype html 

en la plantilla.

https://github.com/pugjs/jade/issues/370

+1

este comentario debería ir encima de cada 'jade-template'. Después de lo cual no es necesario asignar valores de 'blank-string' a los atributos. 'doctype html' y la siguiente línea' div # core (ui-view controller = "CoreCtrl") '. Tenga en cuenta la 'ui-view' en el código. Gracias @alehro – Akash

+0

Sí, esto fue todo. – taylorpalmer

Cuestiones relacionadas