0

我正在使用 jsRender,我想将我的数据显示为列,而不是我返回的行。我想旋转数据 - 这是可以用 jsRender 完成的吗?我无法在 SQL 中获取数据,所以我唯一的选择是自己做。

这基本上就是我所追求的。我想自己写列名。


页眉 | 第 1 行 | 第 2 行 | 第 3 行 |


列布拉| 行数据 | 行数据 | 行数据


更多废话 | 行数据 | 行数据 | 行数据


我曾尝试对表格单元格使用 {{for}} 循环,但我只是不知道从哪里开始。

更新: 在鲍里斯的建议之后,我尝试了建议的代码。尽管我的格式不正确,但我已将其包含在此处。

这是我的 JSON 源代码的摘录:

{
  "Layers": {
    "Layer": [
      {
    "@LayerID": "1",
    "RiskRef": {
      "@ColVal": "Contract/Section Number",
      "#text": "PUSNA11000392/1"
    },
    "ContractStatus": {
      "@ColVal": "New, Renewal or NTU?",
      "#text": "New"
    },
    "AdjustRate": {
      "@ColVal": "Adjustable Rate",
      "#text": "0.53%"
    },

我的 jsRender javaScript 代码是:

<script id="xolDetailsTemplate" type="text/x-jsrender">
            {{for Layers}}
                {{for >#data["Layer"]}}
                <td>{{>#data["@LayerID"]}}</td>
                {{/for}}
            {{/for}}
</script>
4

1 回答 1

1

如果您的数据是 model = { people: [{firstName: "Jo", lastName: "Colby"}, ...] }

您可以使用以下模板来呈现人员数组,将行转换为列:

<tbody>
    <tr><td>First Name</td>{{for people}}<td>{{>firstName}}</td>{{/for}}</tr>
    <tr><td>Last Name</td>{{for people}}<td>{{>lastName}}</td>{{/for}}</tr>
</tbody>

在下面的评论中,您说您的数据具有像“@foo”这样的字段名称。让我们考虑这个例子: model = { "people": [{"@firstName": "Jo", "@lastName": "Colby"}}, ...] }.

您可以使用模板呈现它,如下所示:

<tbody>
    <tr><td>First Name</td>{{for people}}<td>{{>#data["@firstName"]}}</td>{{/for}}</tr>
    <tr><td>Last Name</td>{{for people}}<td>{{>#data["@lastName"]}}</td>{{/for}}</tr>
</tbody>

如果字段名称包含非 JavaScript 名称字符,例如“@”,则需要使用该语法#data["@xxx"]

于 2012-09-19T17:36:56.603 回答