0

我试图弄清楚如何创建一个 Kendo 模板,该模板将遍历 AJAX 请求返回的 JSON 数组。下面是数据对象的样子:

[{"Id":5, "CreatedBy":"testuser1"},
{"Id":6,"Archived":false,"CreatedBy":"testuser2"},
{"Id":7,"Archived":false,"CreatedBy":"testuser3"}]

我想在Kendo 模板中仅列出 CreatedBy 字段:

用户列表:
testuser1
testuser2
testuser3

这是我的尝试,但它不起作用:

<ul>
     # for (var i = 0; i < data.length; i++) { #
          <li>#= data[i].CreatedBy #</li>
     # } #
</ul>

我只是得到一个未定义、未定义、未定义的列表......当我删除 CreatedBy 并只做 data[i] 时,我会列出每个字段的每个字母。如何从数据对象访问实际的 CreatedBy 值?

4

2 回答 2

1

我能够通过首先解析它来完成我想要的。如果其他人有更好的清洁方式,请告诉我。

<script id="myKendoTemplate" type="text/x-kendo-template">
    <ul style="list-style: none; padding: 0;">
        # var objList = $.parseJSON(data); #
        # for (var i = 0; i < objList.length; i++) { #
            <li>#= objList[i].CreatedBy #</li>
       # } #
    </ul>
</script>

如果有人感兴趣,另一个更新是我在kendo 窗口文档中找到的。如果您将 dataType 设置为 json ,则 jQuery 会为您解析数据,并且您不需要 $.parseJSON(data) 行。

于 2016-02-23T03:04:50.797 回答
0

如前所述,问题出在 AJAX 请求的数据类型上。

默认返回数据类型为字符串,Kendo Template 无法解析。

在请求中明确指定后 dataType: "json",或者像OP自己的答案将返回数据解析为JSON类型后,可以被Kendo Template理解并再次正常运行。

于 2016-02-23T03:42:36.563 回答