Jade:多个属性的新警告
Posted
技术标签:
【中文标题】Jade:多个属性的新警告【英文标题】:Jade : New warning on multiple attributes 【发布时间】:2013-10-11 15:50:58 【问题描述】:我已将翡翠更新到最新版本,并开始在控制台中看到此消息
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")
【问题讨论】:
【参考方案1】:多个“属性”并不意味着您可能认为它意味着什么。它不是我们所知道的 html 属性,而是“属性”类型的标记。
例子:
a(href="#WAT").some-class(title="WAT")
注意我有两个属性部分,每个部分都有一个属性。
最好将它们放在一个属性部分:
a(href="#WAT", title="WAT").some-class
【讨论】:
+1。确实,我的 mixindiv(class=c)(attributes)
中有这样的代码,当更改为 div(class=c, attributes)
时,警告消失了【参考方案2】:
(我通过谷歌搜索这个警告作为第一个结果之一发现了这个问题,因为我想摆脱它......)
上面接受的答案在以下情况下对我没有帮助,但它显示了如何在不丢失属性功能的情况下摆脱警告 (它没有提供为什么它以这种方式工作的答案):
// 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")
(我很抱歉造成如此多的误解,如下面的 cmets 所示,并希望我在这里的最后一次编辑澄清它是一个有效的,虽然稍微更笼统的回答/帮助这些 docpad 警告) em>
【讨论】:
如果您有新问题,请使用dedicated feature。 ;) 我不想问一个非常相似的问题,因为这个问题已经提供了一个可行的解决方案。对我来说,只是有点不同。如果直接在此处搜索警告,那么创建一个新问题没有多大意义,是吗?不要太挑剔:-) 但这是一个问题,不是这个问题的答案。 等等——这个答案的目的是什么?是提供替代方法,还是询问为什么会这样? 澄清了答案中的内容,并希望它现在反映了一个合理可接受的答案以上是关于Jade:多个属性的新警告的主要内容,如果未能解决你的问题,请参考以下文章