【发布时间】:2015-02-06 14:12:08
【问题描述】:
在 Expressjs 中使用dustjs 模板引擎 4. 希望在用户填写表单并使用 xhr 单击搜索按钮时呈现模板客户端。就从 xhr 调用中获取 json 而言,一切似乎都很好,但是dust.render 没有呈现结果。
这是页面上的灰尘模板:
<script id="结果模板"> // 为简洁起见删除了额外的表格标签 {#搜索结果} {名称} {lname} {帐户ID} {电子邮件} {地位} {/搜索结果} 脚本>下面是外部 js 文件中的 js/jquery 对服务器端进行 xhr 调用。在成功回调内部是我试图呈现调用结果的地方,基本上是用户填写搜索表单并点击提交:
$(document).ready(function () {
$('#main').on('click', '#search-btn', function (e) {
e.preventDefault();
$.ajax({
url: '/support/search/ah',
type: "post",
headers: {token: sessionStorage.getItem('somekey')},
data: {'phone': $('#mobile').val(),
'email': $('#email').val(),
'fname': $('#fname').val(),
'lname': $('#lname').val()
},
success: function (data, textStatus, request) {
var source = $("#result-template").html();
var compiled = dust.compile(source, "intro");
dust.loadSource(compiled);
dust.render("intro", data, function(err, out) {
$("#output").html(out);
$('#search-result').dataTable();
});
},
error: function (data, textStatus, request) {
// handle error
})
})
xhr 调用成功,我可以看到“数据”变量包含带有值的 json,但是,我无法使用dust.render 渲染它们,并且在页面加载时没有观察到 js 错误或当结果回来时。
这是 xhr 调用的 json 结果:
{"search_results":[{"fname":"Duke", "lname":"Wellington","accountId":"007","email":"duke_wellington","status":"Breathing"}]};我在atakdubya.github.io 尝试了具有相同 json 结果的相同模板替换它的数组示例,它工作正常。
如果有人能指出我做错了什么,将不胜感激。
【问题讨论】:
标签: dust.js