Jade: новое предупреждение по нескольким атрибутам
Я обновил jade до последней версии и начал видеть это сообщение в консоли
You should not have jade tags with multiple attributes
Он упоминается как функция здесь
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
и я вижу это в коде.
https://github.com/visionmedia/jade/blob/a38aa552f6f53554ac5605299b6b8c7e07cbdf1f/lib/parser.js#L662
Но что это значит? Когда я получу это предупреждение. Например, когда я получу ошибку на основе приведенного ниже кода (он работает без предупреждения, но хотел бы знать, когда я получу ошибку, чтобы я мог сравнить с моим кодом)
mixin link(href, name)
a(class=attributes.class, href=href)= name
a(href=href, attributes)= name
+link('/foo', 'foo')(class="btn")
Ответы
Ответ 1
Несколько "атрибутов" не означает, что вы, вероятно, думаете, что это значит. Это не атрибут HTML, как мы его знаем, а токен типа "атрибут".
Пример:
a(href="#WAT").some-class(title="WAT")
Обратите внимание, что у меня есть два раздела атрибутов, каждый из которых имеет один атрибут.
Лучше поместите их в один раздел атрибутов:
a(href="#WAT", title="WAT").some-class
Ответ 2
(Я нашел этот вопрос через googleing это предупреждение как один из первых результатов, потому что я хотел избавиться от него...)
Принятый ответ выше не помог мне в следующем случае, но он показывает, как можно избавиться от предупреждения без потери функциональности атрибутов
(он не дает ответа на вопрос, почему он работает таким образом):
// 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")
(Мне жаль, что вы создали так много недоразумений, как показано в комментариях ниже, и надеюсь, что мое последнее изменение здесь поясняет, что это действительный, хотя и немного более общий ответ/помощь для этих предупреждений docpad)