繁体   English   中英

流星模板数据解析

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM