在Jade / Pug中应用属性的嵌套对象

ArrayKnight

有没有一种方法可以将数据/ aria属性的对象传递给元素?

我试过了:

div(data={foo:'bar'})

div(data={foo='bar'})

div&attributes({aria:{foo:'bar'}})

但是这些都不输出期望的属性符号。对象文字的第一和第三位在基础数据/ aria属性中。第二个是语法错误。

我可以找到该作品的唯一方法是:

div(data-foo='bar')

div&attributes({'aria-foo':'bar'})
丹尼尔

通过以减号开头的新行,-您可以使用JADE / PUG编写常规的JavaScript。这为您提供了解决几乎所有问题的强大武器。

只需抓住一个像这样的常规对象var attributes = {'foo':'bar', 'bar':'foo'},并在每个循环中使用所需的前缀扩展它的键即可。

这是可以使用的笔http://codepen.io/pure180/pen/kXwqdA,这可能是您的代码:

- var attributes = {'foo':'bar', 'bar':'baz'}
- var ariaAttributes = {}
- for (attr in attributes) {
-     var key = 'aria-' + attr
-     ariaAttributes[key] = attributes[attr]
- }

div&attributes(ariaAttributes) Test

您也可以将其用作全局mixin,这是Pen http://codepen.io/pure180/pen/KrqYpB,看起来像这样:

mixin setAriaAttr(object)
  - var attributes = object
  - var ariaAttributes = {}
  - for (attr in attributes) {
  -     var key = 'aria-' + attr
  -     ariaAttributes[key] = attributes[attr]
  - }

  div&attributes(ariaAttributes) Test

- var aria = {'foo':'bar', 'bar':'baz'}
+setAriaAttr(aria)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章