iCanHaz.js+胡子没有't渲染数据对象中的第一行
iCanHaz.js + Moustache doesn't render first row in data object
我有一个JSON数据对象和一个使用Moustach语法编写的text/html/javascript模板。我使用iCanHaz.js作为模板解析器。
我的问题是没有显示数据对象中的第一行。
这是我的JS代码:
var data = jQuery.parseJSON('{"data":[{"title":"Title One"}, {"title":"Title Two"}]}');
var html = ich.data_template(data);
还有我的胡子模板:
<script type="text/html" id="data_template">
{{#data}}
{{title}}<br />
{{/data}}
</script>
上面的代码将其输出为我渲染的HTML:
<br />
Title Two<br />
正如您所看到的,JSON对象中的"标题一"没有显示。
有人知道为什么吗?我猜测这与我的JSON对象结构不正确有关(数组/对象)。
非常感谢。
尝试将原始标志(第二个参数)设置为true。
var data = jQuery.parseJSON('{"data":[{"title":"Title One"}, {"title":"Title Two"}]}');
var html = ich.data_template(data, true); #Note the true.
另外,为什么要将JSON写成字符串并对其进行解析?你可以做:
var data = {"data": [{"title": "Title One"}, {"title": "Title Two"}]};
var html = ich.data_template(data, true);
如果没有原始标志,它将返回一个节点元素数组,您需要设置一个根级别的元素才能使其工作。
<script type="text/html" id="data_template">
<div>
{{#data}}
{{title}}<br />
{{/data}}
</div>
</script>
您可以通过在控制台中运行以下JavaScript来测试这一点。
ich.addTemplate('data_template', '{{#data}}{{title}}<br />{{/data}}');
var data = {"data": [{"title": "Title One"}, {"title": "Title Two"}]};
var html = ich.data_template(data, true);
console.log(html);
html = ich.data_template(data);
console.log(html);
ich.addTemplate('data_template_root', '<div>{{#data}}{{title}}<br />{{/data}}</div>');
html = ich.data_template_root(data, true);
console.log(html);
html = ich.data_template_root(data);
console.log(html);
相关文章:
- 将嵌套对象数据添加到窗体中
- 使用javascript更改嵌套对象数据
- 如何将状态对象/数据传递给(异步)ajax 回调
- 如何使用HTML5中的sessionStorage概念在Javascript中打印对象数据
- 如何在express中使用socket.io发布多个对象数据
- 如何在 Javascript 中将函数绑定到对象数据成员的更改
- 在$.ajax调用中将附加数据添加到jQuery包装的对象数据中
- 当点击处理程序添加到谷歌地图圆圈标记时,无法访问对象数据
- JavaScript对象数据和数组
- 访问主数组内的数组中的对象数据
- 角度.js从NG重复更新对象数据
- HTML 对象数据文件(如果未找到)
- 设置对象数据结构数组属性
- Ajax 请求不发送我的对象数据
- 获取对象数据的浅拷贝的最快方法是什么
- 如何访问对象的键值?希望从对象数据填充表
- JSON.parse 似乎不解析对象数据
- 在 android WebView 中的 java 和 javascript 之间共享对象(数据)
- 选择 JSON 对象数据表元素以列出其所有元素
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调