[英]Using NPM package on Meteor's Template
我已经使用mrt add moment
添加了moment
包,以在Meteor模板中在客户端格式化日期/时间。 但是我似乎能够在服务器端使用它,但不能在模板助手中使用它。
如何在模板助手中使用momentjs
?
server / main.js(有效!)
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'
如果您使用添加时间
mrt add moment
那么它可以直接用作功能:
moment()
您始终可以通过查看其package.js文件来查找如何使用特定的软件包。 看一下一下package中的package.js :
...
if(api.export) {
api.export('moment');
}
...
我注意到通过注册全局把手帮助器来使用moment非常方便:
Handlebars.registerHelper('nice-date', function(date){
return moment(date).fromNow();
});
并直接在模板中使用它:
<template name="test">
{{nice-date createdAt}} // 5 seconds ago
</template>
如果添加了Meteor包,则永远不需要使用require()
。 您是如何添加Moment的? 使用命令mrt add moment
通过Atmosphere上的软件包( https://atmosphere.meteor.com/package/moment )?
在该页面上,一旦添加了软件包,您应该会看到一个moment
全局变量,您可以简单地调用它:
var oneMonentPlease = moment();
您无需在任何地方放置任何require
语句。 上面的行应该可以正常工作。
由于Moment是一个客户端库,因此您不必将其添加为Meteor程序包或Npm模块。 您可以下载http://momentjs.com/downloads/moment.min.js并将其保存在/lib
文件夹中。 这样做,它将自动对客户端和服务器都可用,并且上面的代码行将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.