17

我已将翡翠更新到最新版本,并开始在控制台中看到此消息

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")
4

2 回答 2

25

多个“属性”并不意味着您可能认为它意味着什么。它不是我们所知道的 HTML 属性,而是“属性”类型的标记。

例子:

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

请注意我有两个属性部分,每个部分都有一个属性。

最好将它们放在一个属性部分中:

a(href="#WAT", title="WAT").some-class
于 2013-10-04T16:46:08.133 回答
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 警告)

于 2014-12-13T19:48:10.347 回答