格式化空格键输出

时间:2016-06-08 01:04:42

标签: meteor spacebars

我正在使用meteor / spacebars并尝试格式化{{#each}}的输出。我之前已经问过这个问题here但是我试图应用这些答案,并且出于任何理由他们只是清除了应该格式化的字段,根本没有输出,我不能为我的生活找出原因。

这就是我的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'字段用于查找与该代码对应的用户的用户名。看起来我想申请之前没有使用过的“注册助手”并找不到有关 - except here的更多信息 - 但是当我将以下代码复制并粘贴到我的客户端时 - 侧javascript文件它只是清除输出并返回和空格

UI.registerHelper('formatTime', function(context, options) {
  if(context)
    return moment(context).format('MM/DD/YYYY, hh:mm');
});

1 个答案:

答案 0 :(得分:1)

乔希,

这是一个工作示例流星应用程序,我将它们放在一起向您展示它是如何工作的:

工作测试项目:

Moment JS and Meteor Test - on Github

您最感兴趣的两个文件是: main.htmlmain.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。在终端/控制台中运行:

$ meteor add momentjs:moment

(注意:&#39; $&#39;是控制台光标,运行命令时不包括它)

来源:

以下是帮助我为您创建此答案的网页链接:

Test Github project setup for this question

Meteor Chef - Using Global Template Helpers

Atmosphere: momentjs:moment