javascript - 使用 jQuery 模板渲染 JSON

标签 javascript jquery json jquery-templates

几天来,我一直在尝试使用 jQuery 模板进行一些 JSON 渲染,但没有成功……我希望比我更聪明的人能够发现我哪里出错了。

所以我的 JSON 数据返回类似这样的内容:

[{"pk": 1, "model": "blobs.blob", "fields": {"content": "hello"}}, {"pk": 2, "model": "blobs.blob", "fields": {"content": "goodbye"}}];

然后我尝试使用 jQuery 模板呈现 JSON 返回的每个项目:

var blob_template = '<p>${content}</p>';

$.template('blobTemplate', blob_template );

$.getJSON('/myurl/', function(data) {

    $('blobTemplate').empty();

    var blobs = data;

    $.tmpl('blobTemplate', blobs)
        .appendTo('div');
});

模板呈现良好但没有来自 ${content} 的数据。我没有收到任何错误或未定义的消息,但我不知道我哪里出错了?非常感谢任何帮助!

更新:

好的,为了避免使用已弃用的方法或额外的脚本/插件,这是更好的方法吗?

$.getJSON('/myurl/', function(data) {
    var blobs = [];

    $.each(data, function(i, data) {
        var blob_template = '<p>' + data[i].fields.content + '</p>';

        blobs.push(blob_template);
    });

    $(notes.join('')).appendTo('div');
});

这似乎导致数据 [i] 未定义 :(

最佳答案

根据我对已弃用模板插件的有限了解,它不会获取 content 属性,因为它不是 JSON 对象集合中每个对象的顶级属性。我认为您的模板应如下所示:

<p>
    {{each fields}}
        ${$value}
    {{/each}}
</p>

关于javascript - 使用 jQuery 模板渲染 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8104500/

相关文章:

javascript - 这是 JavaScript 内存泄漏吗?

javascript - 带有表单的动态模态 - 未定义的发布数据

javascript - Magnific Popup 的自定义标题

javascript - 按字母顺序对数组进行排序,但有异常(exception)

javascript - 如何创建一个包含自动完成框的模式弹出窗口来选择一个条目?

javascript - 如何在 Internet Explorer 8 中获取 innerWidth

javascript - 保持 ADF 页面中的滚动位置

json - 得到 : Cannot unmarshal string into Go value

C++ nonlohmann json读取子对象

Java GSON - 将 int 作为字符串序列化为 json 文件