了解这个JSON一秒钟。是的,它像地狱一样嵌套。我需要它嵌套以保持数据层次结构。
我的问题是密钥不通用(由于C#Dictionary键不能相同)。它们根据数据而有所不同。到目前为止,我的模板看起来像这样:
<script id="customerTemplate" type="text/x-jQuery-tmpl">
{{each $data}}
<div class="Customer">
<input class="CustomerId" type="hidden" value="${ $index }" />
<div class="CustomerHeader">
<div class="NameAndCheckbox">
<input type="checkbox" checked="checked" class="CustomerCheckbox" />
<span class="HeadlineText">${ $index }</span>
</div>
</div>
<div class="CustomerProjectWrapper">
/* HOW TO ACCESS DATA WITHIN $data */
</div>
</div>
{{/each}}
</script>
如您所见,我想访问$data
内的json。 $data
的值包含JSON,但我不知道访问它的语法..并且在每个$data
的值内部还有也 JSON。
我该怎么做?
注意:
这是我的jQuery代码:
$.template("ctmpl", $("#customerTemplate"));
$.tmpl("ctmpl", jsonobject).appendTo("#CustomerContainer");
答案 0 :(得分:9)
您可以使用如下语法:{{each(index, value) array}}
清楚地了解循环内容的索引/值。 {{each}}
也可以迭代对象的属性。
所以,如果你有这样的数据:
var data = {
testA: {
testA1: {
testA1A: "blahA1A",
testA1B: "blahA1B"
},
testA2: {
testA2A: "blahA2A",
testA2B: "blahA2B"
}
},
testB: {
testB1: {
testB1A: "blahB1A",
testB1B: "blahB1B"
},
testB2: {
testB2A: "blahB2A",
testB2B: "blahB2B"
},
}
};
您可以编写如下模板:
<script id="contentTmpl" type="text/html">
<ul>
{{each(i, item) $data}}
<li>${i}</li>
<ul>
{{each(j, subItem) item}}
<li>${j}</li>
<ul>
{{each(k, subSubItem) subItem}}
<li>${k} = ${subSubItem}</li>
{{/each}}
</ul>
{{/each}}
</ul>
{{/each}}
</ul>
</script>