Jade:没有值的元素属性

时间:2012-06-13 17:24:19

标签: attributes pug

我是使用Jade的新手 - 到目前为止它非常棒。

但是,我需要做的一件事就是使用' itemscope'属性:

<header itemscope itemtype="http://schema.org/WPHeader">

我的玉符号是:

header(itemscope, itemtype='http://schema.org/WPHeader')

但结果是:

<header itemscope="itemscope" itemtype="http://schema.org/WPHeader">

如何确保我获得正确的结果 - itemscope而不是itemscope="itemscope"

5 个答案:

答案 0 :(得分:12)

有时它不能正常工作 - 就像contentEditable Jade尝试检测html5文档类型一样,然后<header itemscope itemtype="http://schema.org/WPHeader"></header>如果找到它。问题是,如果你有在页面中插入的模板,它就不能说它是html5。

您可以做的是通过将{doctype: '5'}传递给选项来强制执行html5编译 - 为require-jade执行此操作:https://github.com/ibash/require-jade/commit/754cba2dce7574b400f75a05172ec97465a8a5eb

答案 1 :(得分:10)

使用angular ng-include指令时遇到了同样的问题。它获得ng-include =“ng-include”,然后包含无效。

它对我有用的是使用空字符串作为值,即ng-include =“”。

答案 2 :(得分:7)

以下是玉开发者的答案:你应该使用

  doctype html

在模板中。

https://github.com/pugjs/jade/issues/370

答案 3 :(得分:6)

我刚刚在Express.js / Jade项目中尝试过,我得到的结果是:

<header itemscope itemtype="http://schema.org/WPHeader"></header>

我也在bash中尝试过,然后我得到与你相同的结果。

我会提出以下建议或在Github上创建一个问题。

  

itemscope =“itemscope”与itemcope一样有效。看起来这是Jade的默认行为。我跟它一起去。

答案 4 :(得分:1)

我遇到了同样的问题,在我的案例中最简单的解决方案是在我的玉文件顶部添加doctype 5。这显然允许Jade使用没有值的属性。 ibash用他的回答让我走上正轨,所以谢谢你