繁体   English   中英

在流星的模板上使用NPM软件包

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM