玉石:关于多个属性的新警告

17

我已将Jade更新到最新版本,开始在控制台中看到以下消息

您不应该在jade标签中使用多个属性

它被称为特性,在这里提到。

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")
2个回答

25

“多个属性”并不是你想象中的HTML属性,而是类型为"属性"的一个标记。

例如:

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

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

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

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

2
+1。实际上,我在我的mixin中有这样的代码div(class=c)(attributes),当改为div(class=c, attributes)时,警告消失了。 - bsr

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 警告问题。


如果您有一个新问题,请使用专用功能。;) - Scimonster
我不想在这个问题已经提供了一个可能有效的解决方案时再问一个非常相似的问题。对我来说只是有点不同而已。如果谷歌警告直接导向这里,那么创建一个新问题就没有太多意义了,对吧?别太挑剔 :-) - Andreas Covidiot
但这是一个问题,不是对这个问题的答案。 - Scimonster
1
等一下 - 这个回答的目的是什么?是提供另一种方法,还是询问为什么这样做有效? - Scimonster
1
在回答中澄清了一些事情,希望现在它能反映出一个比较可接受的答案。 - Andreas Covidiot
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接