Javascript 填充Moustache.js模板

Javascript 填充Moustache.js模板,javascript,json,mustache,quickbase,Javascript,Json,Mustache,Quickbase,我目前正在使用一个QuickBase数据库,试图使用moustach.js创建一个自定义报告,当我查看moustach.js时,我注意到您需要JSON格式的数据,所以我使用JSON格式将数据转换为JSON,结果如下所示 我的问题是,当我为此创建模板时,它是否需要全部包含在获取json数据的调用所在的页面中?我已经看过了小胡子模板的例子,但我能找到的只是它与提供的数据一起使用,然后以JSON格式制作,但我需要的数据是在我打电话时提供的,所以我该如何设置它 使用mustache js模板或js模板时

我目前正在使用一个QuickBase数据库,试图使用moustach.js创建一个自定义报告,当我查看moustach.js时,我注意到您需要JSON格式的数据,所以我使用JSON格式将数据转换为JSON,结果如下所示


我的问题是,当我为此创建模板时,它是否需要全部包含在获取json数据的调用所在的页面中?我已经看过了小胡子模板的例子,但我能找到的只是它与提供的数据一起使用,然后以JSON格式制作,但我需要的数据是在我打电话时提供的,所以我该如何设置它

使用mustache js模板或js模板时,通常不需要将模板与ajax调用返回的数据放在同一位置。但是,您需要将数据存储在模板的render函数范围内的var中。我假设您希望在一组数据中使用ajax,将其解析为JSON,然后在某个时候将JSON数据呈现给DOM。因此,要回答您的问题:

1模板是否需要包含在JSON数据所在的页面中? 不一定,但您需要能够从一个位置访问这两个部分,即,您可以在模板和数据中使用ajax,然后将其组合在一起。或者,您可以将模板作为脚本存储在DOM中[除非您使用AMD,否则推荐的方法],然后在ajax调用完成时呈现模板

需要注意的主要问题是,您需要在同一范围内引用模板和数据

2设置模板/数据

这可以通过使用ajax成功回调来实现:

因此,如果成功,您可以在模板上调用render函数,或者只使用数据设置一个局部范围的变量,然后处理模板渲染

3正常渲染模板

var template = $('#template').html(), //script tage with id="template" from your dom
    data = jsonData, //saved somewhere in a local scoped var .. maybe from an ajax call
    rendered = Mustache.render(template, data),
    target = $("#target"); //where the template renders to

$('#target').html(rendered);
4通过$.ajax呈现模板

$.ajax("/api/data", function(data){
    var jsonData = $.parseJSON(data),
        template = $('#template').html(), //script tage with id="template" from your dom
        rendered = Mustache.render(template, jsonData),
        target = $("#target"); //where the template renders to

});

var中的数据是相同的,无论是硬编码还是通过ajax虹吸。非常感谢!这正是我需要的信息!