Mustache JS无法渲染JSON数据,请求技术排查指导
解决Mustache JS渲染无内容的问题
嘿,我帮你找到了问题所在!你调用的这个国家数据接口返回的是一个包含单个对象的数组,但你的代码直接把整个数组传给了Mustache的render方法,模板里的{{name}}、{{capital}}这些字段根本找不到对应的值,所以渲染出来是空的。
具体修改步骤:
只需要在渲染的时候,把数组里的第一个元素传进去就行,因为接口返回的结果里只有我们需要的那一个国家对象:
$(function () { $("#btn").on('click', function () { $.getJSON('https://restcountries.eu/rest/v2/name/aruba?fullText=true', function (data) { var template = $("#mp_template").html(); // 重点:取数组的第一个元素作为渲染数据 var text = Mustache.render(template, data[0]); console.log(data[0]); // 可以在控制台查看单个国家的完整数据结构 $("#mypanel").html(text); }); }); });
额外验证小提示:
你之前打印的data是一个数组,展开后能看到里面的[0]索引下才是包含name、capital、flag这些属性的对象,所以直接用data肯定匹配不上模板里的变量。
另外你的模板写法是对的,{{{ flag }}}用三重大括号来渲染未转义的HTML(img的src属性),这个没问题。
内容的提问来源于stack exchange,提问作者Slyper
相关产品推荐
相关产品推荐

