我已将jade更新为最新版本,并开始在控制台中看到此消息
You should not have jade tags with multiple attributes
它被称为功能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
我在代码中看到了它。 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")
答案 0 :(得分:24)
多个"属性"并不代表你认为它意味着什么。它不是我们所知道的HTML属性,而是类型"属性"的标记。
示例:
a(href="#WAT").some-class(title="WAT")
请注意我有两个属性部分,每个部分都有一个属性。
最好将它们放在一个属性部分中:
a(href="#WAT", title="WAT").some-class
答案 1 :(得分:0)
(我发现这个问题是通过谷歌这个警告作为第一个结果之一,因为我想摆脱它......)
上面接受的答案在以下情况下对我没有帮助,但它显示了如何在不丢失属性功能的情况下摆脱警告 (它没有提供为什么以这种方式工作)的答案:
// 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警告稍微更为一般,答案/帮助)