【发布时间】:2017-07-11 09:55:27
【问题描述】:
我正在尝试使用条件(如果在外部 .json 中存在对象),但 pug 无法识别它。
所以,我的 json 文件是这样的:
{
"portfolioItems": [object1: {
objectA { ...
},
objectB { ...
},
"buttons": [{
key: value
}, {
key: value
}]
}, object2: {
objectA { ...
},
objectB { ...
}], object3: {
objectA { ...
},
objectB { ...
}
}
}
}
基本上,我需要为“对象 1”(按钮)创建一个额外的 div。
mixin portfolio(css, image, title, description)
div(class= "item " + css)
.wrap-img
img(src= assets + "img/home/" + image)&attributes(attributes)
.wrap-text
h3= title
p= description
if home.portfolioItems.buttons
div.buttons
each val in home.portfolioItems.buttons
a(href= val.link, target="_blank")
img(class= val.className, src= assets + "img/stores/" + val.image)
div.portfolio--items
- var projects = home.portfolioItems;
each item in projects
+portfolio(item.class, item.image, item.title[lang], item.description[lang])(alt= item.title[lang], title=item.title[lang])
Pug 可以访问“home.portfolioItems.buttons”,但它不能在 mixin 中执行条件?因为我可以在外面运行它(但我不想要它)。
提前致谢。对不起,英语有任何错误。 ;)
【问题讨论】:
-
您在哪里/如何定义“家”对象?
-
@sean home 是我在 pug/js 中定义的一个变量,它存储了上面的 json。基本上,它是 gulp 为 pug 任务处理的“本地人”的快捷方式。请参阅此示例链接(相同流程):github.com/joaosaro/staro-webkit/blob/master/src/pug/0-setup/…、github.com/joaosaro/staro-webkit/blob/master/gulpfile.js、github.com/joaosaro/staro-webkit/blob/master/src/data/home.json
-
这些方括号是否正确放置在问题正文中提供的 json 中?
-
@sean 我想是的。你明白这个问题吗?基本上,我可以使用 pug 访问所有对象,除了 mixins 内部。所以我想问题焦点应该在哈巴狗内部
-
您是否尝试过将 JSON 对象作为参数传递给 mixin?