我使用moment
添加了mrt add moment
包来格式化Meteor模板中客户端的日期/时间。但是我似乎能够在服务器端使用它,但不能在模板助手中使用它。
如何在模板助手中使用momentjs
?
server / main.js(Works!)
var moment = Meteor.require('moment');
var t = moment( '2013-11-24 16:18:06' ).format('HH:mm:ss');
console.log(t);
client / main.js(不起作用)
Template.fruits.myTime = function() {
var moment = Meteor.require('moment');
var t = moment( '2013-11-24 16:18:06' ).format('HH:mm:ss');
return t;
}
错误:
Uncaught ReferenceError: require is not defined
我尝试使用Npm.require('moment')
,但却出错:Uncaught ReferenceError: Npm is not defined
和Meteor.require('momemt')
:Uncaught TypeError: Object #<Object> has no method 'require'
答案 0 :(得分:2)
如果使用
添加时刻mrt add moment
然后它可以直接作为函数使用:
moment()
通过查看其package.js文件,您始终可以了解如何使用特定包。看看package.js in moment package:
...
if(api.export) {
api.export('moment');
}
...
我注意到通过注册全局车把帮助来使用时刻非常方便:
Handlebars.registerHelper('nice-date', function(date){
return moment(date).fromNow();
});
直接在模板中使用它:
<template name="test">
{{nice-date createdAt}} // 5 seconds ago
</template>
答案 1 :(得分:0)
如果添加Meteor包,则永远不需要使用require()
。你是如何添加时刻的?使用命令mrt add moment
?
根据该页面,一旦添加了包,您应该会看到一个moment
全局变量,您只需调用它:
var oneMonentPlease = moment();
您无需在任何位置放置任何require
语句。以上这条线应该可行。
由于Moment是一个客户端库,因此您不一定需要将其添加为Meteor包或Npm模块。您只需下载http://momentjs.com/downloads/moment.min.js并将其保存在/lib
文件夹中即可。这样做,它将自动为客户端和服务器提供,并且上面的代码行将起作用。