这是我的场景,Meteor的第一个项目:我的MongoDB文档中嵌入了JSON字符串化数据,您可以在下面的MESSAGE键中看到:
{ "DATE" : "Jan 24 23:28:14","MESSAGE" : **"{\"status_code\":200,\"uri\":\"172.16.156.143/content/dynamic\",\"tprocess\":3}"**,"_id" : ObjectId("5101c3992a1624e726000014") }
在Meteor中,我的客户端模板代码类似于以下基本模式:
Template.log.logEntry = function () { return Messages.find({}); };
…哪个有效,但它显然会呈现以下模板……
<template name="log"> <h1>Log Entries Are:</h1> {{#each logEntry}} <div> : {{MESSAGE}} </div> {{/each}} </template>
…例如,在浏览器中使用未解析的文字字符串
{"status_code":200,"uri":"172.16.156.143/static/style.css","tprocess":2}
我喜欢JSON.parse()这个字符串并做更多有趣的事情,但我不确定如何最好地从我的Meteor项目的JavaScript文件中的isClient上下文中做到这一点.
解决方法
添加模板助手:
Template.log.aSpecificField = function () { return JSON.parse(this.MESSAGE).aSpecificField; }
这允许您在#each循环中使用{{aSpecificField}}.