gpt4 book ai didi

javascript - jsRender for in for,但是针对2种不同的结构

转载 作者:行者123 更新时间:2023-12-03 12:08:40 25 4
gpt4 key购买 nike

嗨,我有这两个不同的东西:

columns = {
name:"Name",
ref:"Reference"
}

items:[
{ id:1, name:"Dan", ref:"01" },
{ id:2, name:"Dan2", ref:"02" }]

我需要将它们放在表格中,例如:

| Name | Reference |
| Dan | 01 |
| Dan2 | 02 |

通常这将是:

{{for columns}}
{{:name}} {{:ref}}<br>
{{/for}}
{{for items}}
{{:name}} {{:ref}}<br>
{{/for}}

但是,我在这两个对象中的键是动态的,所以我想要在 javascript 中实现以下内容:

var header = "";
for(key in Object.keys(columns){
header+=" "+columns[key));
}
console.log(header);
for(var i=0;i<items.length;i++){
var item = items[i];
var line ="";
for(key in Object.keys(columns){
line+=" "+items[key);
}
console.log(line);
}

有人可以提出建议吗?

最佳答案

你可以这样做:

<script id="tmpl" type="text/x-jsrender">
<table><thead><tr>
{{props columns}}
<th>{{:prop}}</th>
{{/props}}
</tr></thead>
<tbody>
{{for items}}
<tr>
{{props ~root.columns ~item=#data}}
<td>{{:~item[key]}}</td>
{{/props}}
</tr>
{{/for}}
</tbody></table>
</script>

{{props}} 迭代对象的属性 - 在 {{props}} block 中,key 是属性(字段)名称,prop 是值。 (参见http://www.jsviews.com/#propstag)。

~item=#data 定义一个变量(“辅助属性”),您可以从嵌套 block 中访问该变量,以便轻松获取“父数据”那里。 (参见http://www.jsviews.com/#samples/jsr/paths)。

以上假设使用以下数据:

var data = {
columns: {
name:"Name",
ref:"Reference"
},
items:[
{ id:1, name:"Dan", ref:"01" },
{ id:2, name:"Dan2", ref:"02" }
]
}

$("#result").html(tmpl.render(data));

关于javascript - jsRender for in for,但是针对2种不同的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25061054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com