2012-06-13 8 views
12

Jestem nowy w użyciu Jade - i jest niesamowity do tej pory.Jade: atrybuty elementów bez wartości

Ale jedno, że muszę się zdarzyć jest elementem z 'itemscope' własność:

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

Moja notacja Jade jest:

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

Ale wynik jest:

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

Jak mogę się upewnić, że otrzymuję właściwy wynik - itemscope zamiast itemscope="itemscope"?

+1

itemscope = "itemscope" będzie działać tak samo dobrze jak tylko itemscope. Wygląda na to, że to domyślne zachowanie Jade. Po prostu z tym pójdę. – jwerre

Odpowiedz

6

Właśnie próbowałem go w projekcie Express.js/Jade, a wynik pojawia się:

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

ja też próbowałem go w bash i następnie uzyskać ten sam rezultat jak ty.

Zrobiłbym następujące sugestie lub utworzyć problem na Github.

itemscope = "itemscope" będzie działać równie dobrze jak tylko przedmiot. Wygląda na to, że to domyślne zachowanie Jade. Po prostu z tym pójdę.

+0

Dzięki. Dziwne, że wynik jest inny. W porządku, pójdzie z tym. –

+0

To jest nadal wyświetlane w wyszukiwaniach Google. Prawidłowym rozwiązaniem dla mnie było ustawienie atrybutu równego pustemu ciągowi. – HasFiveVowels

12

Czasami to nie działa rację - jak z contentEditable Jade próbuje wykryć doctypes HTML5, a następnie robi <header itemscope itemtype="http://schema.org/WPHeader"></header> jeśli go znajdzie. Problem polega na tym, że jeśli masz szablony wstawiane na stronie, nie można powiedzieć, że to html5.

Co można zrobić, to siła html5 kompilacja przekazując w {doctype: '5'} do opcji - czy to dla require-jade: https://github.com/ibash/require-jade/commit/754cba2dce7574b400f75a05172ec97465a8a5eb

+5

Wierzę, że składnia jest teraz '{doctype: 'html'}' – Jay

1

miałem ten sam problem, a najprostszym rozwiązaniem w moim przypadku było dodanie doctype 5 na szczyt mojego jadeitowego dokumentu. To najwyraźniej pozwala Jade używać atrybutów bez wartości. ibash postawił mnie na właściwej drodze z odpowiedzią, więc dzięki za to

+2

Kompilator mówi, że: doctype 5 jest przestarzałe, użyj zamiast niego html.Tak więc, po prostu piszę doctype html tuż przed html (lang = en). FYI. – ankakusu

10

Miałem ten sam problem przy użyciu dyrektywy kątowej ng-include. To pobiera ng-include = "ng-include", a następnie dołączenie nie działa.

To, co dla mnie działa, to użycie pustego łańcucha jako wartości, tj. Ng-include = "".

+1

Tak, spędziłem trochę czasu próbując grać w jade, ale na pewno nie było napisane z myślą o kanciastości – ditoslav

6

Oto odpowiedź od deweloperów jade: należy użyć

doctype html 

w szablonie.

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

+1

ten komentarz powinien znaleźć się na szczycie każdego szablonu "jade-template". Po czym nie musimy przypisywać wartości 'pustego łańcucha 'do atrybutów. 'doctype html' i następna linia' div # core (ui-view controller = "CoreCtrl") '. Zwróć uwagę na 'ui-view' w kodzie. Dzięki @alehro – Akash

+0

Tak, to było to. – taylorpalmer