格式化空格键输出
formatting spacebars outputs
我正在使用 meteor/spacebars 并尝试格式化 {{#each}} 的输出。我发现这个问题之前问过 但我已经尝试应用答案,无论出于什么原因,他们只是清除了应该格式化的字段,根本不提供任何输出,我不能我的生活弄清楚为什么。
这是我的 mongo 条目的样子:
{ "changes": [
{
"name": "oBf4vPN6TcGw8mbok",
"date": "2016-06-07T01:48:37.695Z",
"score": "general",
"value": "5"
},
{
"name": "oBf4vPN6TcGw8mbok",
"date": "2016-06-07T01:48:38.361Z",
"score": "general",
"value": "-5"
}
}
这是 HTML:
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
我正在尝试将 'date' 格式化为更易读的内容,并尝试将 'name' 字段格式化为查找与该代码对应的用户的用户名。看起来我想要应用 'register helpers' 我以前没有使用过并且找不到很多关于 -except here- 的信息但是当我将以下代码复制并粘贴到我的客户端时-side javascript 文件它只是清除输出和 returns 和空白 space
UI.registerHelper('formatTime', function(context, options) {
if(context)
return moment(context).format('MM/DD/YYYY, hh:mm');
});
乔希,
这是我整理的一个工作示例 meteor 应用程序,向您展示它是如何工作的:
工作测试项目:
Moment JS and Meteor Test - on Github
您最感兴趣的两个文件是:
main.html and main.js
上面的例子给出了以下输出:
It is now (unconverted): 1465357853653
It is now (converted): June 7th, 2016
It was as some time (unconverted): 2016-06-07T01:48:37.695Z
It was as some time (converted): June 6th, 2016
现在开始我的冗长回答:
我假设您有这样的文件:
some_template.html:
-------------------
<template name="someTemplate">
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
</template>
像这样制作另一个文件:
helpers.js:
-----------------
Template.registerHelper('ISOToHuman', ( isoString ) => {
if ( isoString ) {
return moment( isoString ).format( 'MMMM Do, YYYY' );
}
});
然后像这样使用它:
{{ISOToHuman "ISO string here"}}
你的情况:
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{ISOToHuman date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
还要确保安装了 momentjs。 运行 这个在你的 terminal/console:
$ meteor add momentjs:moment
(注意:'$'是控制台光标,运行命令时不要包含它)
来源:
以下是帮助我为您创建此答案的页面的链接:
Test Github project setup for this question
我正在使用 meteor/spacebars 并尝试格式化 {{#each}} 的输出。我发现这个问题之前问过
这是我的 mongo 条目的样子:
{ "changes": [
{
"name": "oBf4vPN6TcGw8mbok",
"date": "2016-06-07T01:48:37.695Z",
"score": "general",
"value": "5"
},
{
"name": "oBf4vPN6TcGw8mbok",
"date": "2016-06-07T01:48:38.361Z",
"score": "general",
"value": "-5"
}
}
这是 HTML:
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
我正在尝试将 'date' 格式化为更易读的内容,并尝试将 'name' 字段格式化为查找与该代码对应的用户的用户名。看起来我想要应用 'register helpers' 我以前没有使用过并且找不到很多关于 -except here- 的信息但是当我将以下代码复制并粘贴到我的客户端时-side javascript 文件它只是清除输出和 returns 和空白 space
UI.registerHelper('formatTime', function(context, options) {
if(context)
return moment(context).format('MM/DD/YYYY, hh:mm');
});
乔希,
这是我整理的一个工作示例 meteor 应用程序,向您展示它是如何工作的:
工作测试项目:
Moment JS and Meteor Test - on Github
您最感兴趣的两个文件是: main.html and main.js
上面的例子给出了以下输出:
It is now (unconverted): 1465357853653
It is now (converted): June 7th, 2016
It was as some time (unconverted): 2016-06-07T01:48:37.695Z
It was as some time (converted): June 6th, 2016
现在开始我的冗长回答:
我假设您有这样的文件:
some_template.html:
-------------------
<template name="someTemplate">
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
</template>
像这样制作另一个文件:
helpers.js:
-----------------
Template.registerHelper('ISOToHuman', ( isoString ) => {
if ( isoString ) {
return moment( isoString ).format( 'MMMM Do, YYYY' );
}
});
然后像这样使用它:
{{ISOToHuman "ISO string here"}}
你的情况:
{{#each changes}}
<tr>
<td>{{name}}</td>
<td>{{ISOToHuman date}}</td>
<td>{{score}}</td>
<td>{{value}}</td>
</tr>
{{/each}}
还要确保安装了 momentjs。 运行 这个在你的 terminal/console:
$ meteor add momentjs:moment
(注意:'$'是控制台光标,运行命令时不要包含它)
来源:
以下是帮助我为您创建此答案的页面的链接:
Test Github project setup for this question