Подтвердить что ты не робот

Jade: атрибуты элементов без значения

Я новичок в использовании Jade - и это потрясающе до сих пор.

Но одно, что мне нужно, это элемент с свойством "itemscope":

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

Обозначение My Jade:

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

Но результат:

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

Как я могу убедиться, что получаю правильный результат - itemscope вместо itemscope="itemscope"?

4b9b3361

Ответ 1

Я просто попробовал его в проекте Express.js/Jade, и получилось:

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

Я также пробовал его в bash, а затем получаю тот же результат, что и вы.

Я бы предложил следующее предложение или создал проблему в Github.

itemscope = "itemscope" будет работать так же хорошо, как и просто itemscope. Похоже, это поведение Джейд по умолчанию. Я бы просто пошел с ним.

Ответ 2

Иногда это не работает совершенно правильно - например, с помощью contentEditable Jade пытается обнаружить html5 doctypes, а затем <header itemscope itemtype="http://schema.org/WPHeader"></header>, если он найдет его. Проблема в том, что если у вас есть шаблоны, которые вы вставляете на страницу, он не может сказать, что это html5.

Что вы можете сделать, это принудительная компиляция html5, передав опции {doctype: '5'} в параметры - сделал это для require-jade: https://github.com/ibash/require-jade/commit/754cba2dce7574b400f75a05172ec97465a8a5eb

Ответ 3

У меня была та же проблема, с помощью директивы angular ng-include. Он получает ng-include = "ng-include", а затем include doesnt работает.

Для меня это означает использование пустой строки в качестве значения, т.е. ng-include = "".

Ответ 5

У меня была та же проблема, и самым легким решением в моем случае было добавление doctype 5 вверху моего нефритового документа. Это, по-видимому, позволяет Jade использовать атрибуты без значения. ibash поставил меня на правильный путь с его ответом, поэтому спасибо за это