遍历 Stylus 中的嵌套对象
Iterating over nested objects in Stylus
我有一个符合我的触控笔并传入一些数据的构建脚本。
stylus(stylFile)
.set('filename', 'index.css')
.define('data', require('./data.json'))
.render(...)
data.json文件包含一个组对象,每个组由多个表示项目的对象组成。
{
"group1": {
"item1": {
"width": 1
},
"item2": {
"width": 2
}
},
"group2": {
"item3": {
"width": 3
}
}
}
在我的 Stylus 文件中,我想遍历组,然后像这样遍历它们的项目
for group, items in data
#{group}
for id, item in items
#{id}
width item.width
我希望它的输出是
#group1 #item1 {
width: 1;
}
#group1 #item2 {
width: 2;
}
#group2 #item3 {
width: 3;
}
相反,我得到
ParseError: index.css:118:1
114| #{group}
115| for id, item in items
116| #{id}
117| width item.width
118|
--------^
expected "indent", got "outdent"
我不知道你如何在手写笔中获得 json
但使用 哈希对象 你可以这样做:
手写笔
data={
"group1": {
"item1": {
"width": 1
},
"item2": {
"width": 2
}
},
"group2": {
"item3": {
"width": 3
}
}
}
for group in data
#{group}
items = data[group]
for item in items
#{item}
for property, value in items[item]
{property} value
输出
#group1 #item1 {
width: 1;
}
#group1 #item2 {
width: 2;
}
#group2 #item3 {
width: 3;
}
更新
您可以从手写笔文件中获取 json
并在 哈希对象中进行转换:
data = json('data.json', { hash: true })
for group in data
#{group}
items = data[group]
for item in items
#{item}
for property, value in items[item]
{property} value
我有一个符合我的触控笔并传入一些数据的构建脚本。
stylus(stylFile)
.set('filename', 'index.css')
.define('data', require('./data.json'))
.render(...)
data.json文件包含一个组对象,每个组由多个表示项目的对象组成。
{
"group1": {
"item1": {
"width": 1
},
"item2": {
"width": 2
}
},
"group2": {
"item3": {
"width": 3
}
}
}
在我的 Stylus 文件中,我想遍历组,然后像这样遍历它们的项目
for group, items in data
#{group}
for id, item in items
#{id}
width item.width
我希望它的输出是
#group1 #item1 {
width: 1;
}
#group1 #item2 {
width: 2;
}
#group2 #item3 {
width: 3;
}
相反,我得到
ParseError: index.css:118:1
114| #{group}
115| for id, item in items
116| #{id}
117| width item.width
118|
--------^
expected "indent", got "outdent"
我不知道你如何在手写笔中获得 json
但使用 哈希对象 你可以这样做:
手写笔
data={
"group1": {
"item1": {
"width": 1
},
"item2": {
"width": 2
}
},
"group2": {
"item3": {
"width": 3
}
}
}
for group in data
#{group}
items = data[group]
for item in items
#{item}
for property, value in items[item]
{property} value
输出
#group1 #item1 {
width: 1;
}
#group1 #item2 {
width: 2;
}
#group2 #item3 {
width: 3;
}
更新
您可以从手写笔文件中获取 json
并在 哈希对象中进行转换:
data = json('data.json', { hash: true })
for group in data
#{group}
items = data[group]
for item in items
#{item}
for property, value in items[item]
{property} value