2013-10-04 10 views
17

Ho aggiornato giada alla versione più recente, e ha iniziato a vedere questo messaggio nella consoleJade: Nuovo avvertimento su più attributi

You should not have jade tags with multiple attributes

E 'citato come caratteristica, here

0.33.0/2013-07-12 
Hugely more powerful error reporting (especially with compileDebug set explicitly to true) 
Add a warning for tags with multiple attributes 

ed io vederlo nel codice. https://github.com/visionmedia/jade/blob/a38aa552f6f53554ac5605299b6b8c7e07cbdf1f/lib/parser.js#L662

Ma, cosa significa veramente. Quando riceverò questo avviso. Per esempio, quando riceverò l'errore sulla base del codice qui sotto (Funziona senza preavviso, ma come sapere quando riceverò errore in modo che io possa confrontare con il mio codice)

mixin link(href, name) 
    a(class=attributes.class, href=href)= name 
    a(href=href, attributes)= name 

    +link('/foo', 'foo')(class="btn") 

risposta

23

multipla "attributi" doesn intendo quello che probabilmente pensi significhi. Non è un attributo HTML come lo conosciamo, ma un token di tipo "attributo".

Esempio:

a(href="#WAT").some-class(title="WAT") 

nota come Ho due sezioni attributi, ciascuno con un attributo.

Meglio metterli in una sezione attributo:

a(href="#WAT", title="WAT").some-class 
+2

+1. Effettivamente, ho avuto un codice come questo nel mio mixin 'div (class = c) (attributi)', e l'avviso è scomparso, quando cambiato in 'div (classe = c, attributi)' – bsr

-1

(Ho trovato questa domanda attraverso googleing questo avvertimento come uno dei primi risultati perché volevo sbarazzarsi di esso ...)

La risposta sopra accettata non mi è stata d'aiuto nel seguente caso, ma mostra come si può eliminare l'avviso senza perdere la funzionalità degli attributi (non fornisce una risposta a perché funziona in questo modo):

// using mixins similar to +link(param1,param2) above where 'data' and 'class' 
// below are not named mixin params 

// OK (without a warning): 
+link("foo", data="true")(class="bar") 

// WARNING is shown: 
+link("foo")(class="bar")(data="true") 

// ERROR on compiling: 
+link("foo", class="bar", data="true") 

(mi dispiace per creare così tanto equivoci come indicato nei commenti qui sotto e spero che la mia ultima modifica chiarisce che sia una valida, anche se leggermente più generale, di risposta/aiuto per quegli avvertimenti DocPad)

+0

usando docad 6.69.1 –

+0

Se hai una nuova domanda, per favore usa la [funzione dedicata] (http://stackoverflow.com/questions/ask) per quello. ;) – Scimonster

+0

Non volevo fare una domanda molto simile quando questa offre già una soluzione che potrebbe funzionare. Per me era solo un po 'diverso. Non ha molto senso creare una nuova domanda se googleing l'avviso porta direttamente qui, vero? non essere troppo pignolo :-) –