[英]Meteor template data parsing
Java客户端应用程序正在将数据插入流星的mongoDB中。 HashMap<String, MyObject>
转换为gson.toJson(HashMap<String, MyObject>)
是传递给流星的json对象中的参数之一。 当前端接收到Document / Collection对象时,它可以按名称获取此数据块,如下所示:
"RANDOM_NAME1":{"service":"RANDOM_NAME1","count":20,"maxCount":300},
"RANDOM_NAME2":{"service":"RANDOM_NAME2,"count":50,"maxCount":340},
"
我不知道RANDOM_NAME是什么,任何字符串都可以,但是大括号中的值始终是3个参数-服务,计数和maxCount。
这是我试图遍历此数据块以分别显示3个参数的尝试:
HTML-未显示任何内容
<template name="displayData">
<h2> Data </h2>
{{#each top}}
{{#with interested_block}}
<p>"service: " {{service}} "count:" {{count}} "max: " {{maxCount}}</p>
{{/with}}
{{/each}}
</template>
HTML-我知道RANDOM_NAME值的测试文档,仍然不显示任何内容
<template name="displayData">
<h2> Data </h2>
{{#each top}}
{{#with interested_block}}
<p>{{RANDOM_NAME}} </p>
{{/with}}
{{/each}}
</template>
gson.toJson(HashMap<String, MyObject>
我可以显示整个数据块( gson.toJson(HashMap<String, MyObject>
))
<template name="displayData">
<h2> Data </h2>
{{#each top}}
<p>"java hashmap: " {{interested_block}}</p>
{{/each}}
</template>
这种转换gson.toJson(HashMap<String, MyObject>)
不可gson.toJson(HashMap<String, MyObject>)
还是我尝试过的显示方式之外的另一种显示方式?
原因:
{{#each}}当前仅接受数组,游标或虚假值。
解:
将对象转换为数组(源流星和手把#each遍历object ):
Handlebars.registerHelper('arrayify',function(obj){
result = [];
for (var key in obj) result.push(obj[key]);
return result;
});
假设您收到:
top = {
"RANDOM_NAME1":{"service":"RANDOM_NAME1","count":20,"maxCount":300},
"RANDOM_NAME2":{"service":"RANDOM_NAME2","count":50,"maxCount":340}
}
然后用法:
<template name="displayData">
<h2> Data </h2>
{{#each arrayify top}}
<p>"service: " {{service}} "count:" {{count}} "max: " {{maxCount}}</p>
{{/each}}
</template>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.