2012-06-13 143 views
12

我是使用Jade的新手 - 目前为止它非常棒。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"

+1

itemscope =“itemscope”只会像itemscope一样工作。看起来这就是Jade的默认行为。我只是随它而去。 – jwerre

回答

6

我只是试图在一个Express.js /翡翠项目,结果我得到的是:

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

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

我会与以下建议或在Github上创建问题。

itemscope =“itemscope”只会像itemscope一样工作。看起来这就是Jade的默认行为。我只是随它而去。

+0

谢谢。奇怪的是,结果是不同的。好的,会一起去。 –

+0

这仍然显示在谷歌搜索。对我来说正确的解决方案是将属性设置为等于空字符串。 – HasFiveVowels

12

有时不工作很正确 - 就像contentEditable玉尝试检测HTML5文档类型,然后做<header itemscope itemtype="http://schema.org/WPHeader"></header>,如果它发现它。问题是如果你有插入到页面中的模板,它不能说明它是html5。

你可以做的是在{doctype: '5'}传递给选项力HTML5编辑 - 这样做是为了要求玉:https://github.com/ibash/require-jade/commit/754cba2dce7574b400f75a05172ec97465a8a5eb

+5

我认为语法现在是'{doctype:'html'}' – Jay

1

我有同样的问题,在我的情况下,最简单的方法是在加入doctype 5我的玉文件的顶部。这显然允许Jade使用没有价值的属性。 ibash让我对他的回答正确的轨道,所以谢谢你

+2

编译器说:doctype 5已被弃用,请使用html代替。因此,我只是在html(lang = en)之前编写doctype html。仅供参考。 – ankakusu

10

我有使用角ng-include指令相同的问题。它得到ng-include =“ng-include”,然后include不起作用。

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

+1

是的,我一直在花一些时间尝试让玉器一起玩,但它绝对不是用角度来书写 – ditoslav

6

这里是玉开发商的回答:你应该在模板中使用

doctype html 

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

+1

这个评论应该放在每个“玉器模板”的顶部。之后,我们不需要为属性指定'空白字符串'值。 'doctype html'和下一行'div#core(ui-view controller =“CoreCtrl”)''。请注意代码中的'ui-view'。谢谢@alehro – Akash

+0

是的,就是这样。 – taylorpalmer