首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iCanHaz.js +鼠标缓存不呈现数据对象中的第一行

iCanHaz.js +鼠标缓存不呈现数据对象中的第一行
EN

Stack Overflow用户
提问于 2012-03-06 20:51:24
回答 1查看 576关注 0票数 1

我有一个JSON数据对象和一个使用Moustache语法编写的text/html javascript模板。我使用iCanHaz.js作为模板解析器。

我的问题是数据对象中的第一行没有显示出来。

下面是我的JS代码:

代码语言:javascript
复制
 var data = jQuery.parseJSON('{"data":[{"title":"Title One"}, {"title":"Title Two"}]}');
 var html = ich.data_template(data);

和我的Moustache模板:

代码语言:javascript
复制
<script type="text/html" id="data_template">
    {{#data}}
       {{title}}<br />
    {{/data}}   
</script>

上面的代码将其输出为我呈现的HTML:

代码语言:javascript
复制
<br />
Title Two<br />

正如您所看到的,JSON对象中的"Title One“没有显示出来。

有人知道为什么吗?我猜测这与我的JSON对象(数组/对象)结构不正确有关。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-06 20:53:10

尝试将原始标志(第二个参数)设置为true。

代码语言:javascript
复制
var data = jQuery.parseJSON('{"data":[{"title":"Title One"}, {"title":"Title Two"}]}');
var html = ich.data_template(data, true); #Note the true.

另外,为什么要将JSON编写为字符串并对其进行解析?您可以执行以下操作:

代码语言:javascript
复制
var data = {"data": [{"title": "Title One"}, {"title": "Title Two"}]};
var html = ich.data_template(data, true);

如果没有raw标志,它将返回一个由node元素组成的数组,您需要设置一个根级元素才能使其工作。

代码语言:javascript
复制
<script type="text/html" id="data_template">
    <div>
    {{#data}}
       {{title}}<br />
    {{/data}}   
    </div>
</script>

您可以通过在控制台中运行以下JavaScript来测试这一点。

代码语言: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);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9584060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档