在不使用内联javascript的情况下使用mixin进行计算
因此,我使用mixin在我的web应用程序中显示一系列条目。我希望每一个都有一个相对的时间戳,上面写着它发布的时间在不使用内联javascript的情况下使用mixin进行计算,javascript,node.js,express,pug,mixins,Javascript,Node.js,Express,Pug,Mixins,因此,我使用mixin在我的web应用程序中显示一系列条目。我希望每一个都有一个相对的时间戳,上面写着它发布的时间 mixin listTitles(titles) each title in titles article.leaf article a.headline(href=title.URL)= title.title footer p.postData | Posted span#date=title.time
mixin listTitles(titles)
each title in titles
article.leaf
article
a.headline(href=title.URL)= title.title
footer
p.postData
| Posted
span#date=title.time
a(href='someSource') The New York Times <br>
a.commentButton(href=title.URL)
a.sourceButton(href='#')
mixin listTitles(titles)
mixin列表标题(标题)
标题中的每个标题
第1条叶
文章
a、 标题(href=title.URL)=title.title
页脚
p、 postData
|张贴
span#日期=title.time
(href='someSource')《纽约时报》
a、 commentButton(href=title.URL)
a、 sourceButton(href='#')
混合列表标题(标题)
title.time包含以javascript时间表示的提交时间(以毫秒表示的unix时间)。我想将其与当前时间进行比较,并显示自帖子提交以来的时间 您可以在Jade模板中的任何位置使用JS,方法是将
-
放在行首
mixin listTitles(titles)
- var now = Date.now();
each title in titles
p Posted #{now - title.time} millis ago.
我假设“无javascript”是指该逻辑应该在模板本身中实现,而不是在调用
render()
的js文件中实现。我的意思是,我希望该逻辑在script.js中,而不是在模板中。您知道按照您建议的方式进行操作是否存在性能缺陷吗?因为我要让它将时间转换为分钟、小时和天,并将其连接起来。@user1816679当然你可以:计算它,然后以传递标题的方式传递到渲染
函数。(请参阅和在Express中)Jade编译为JS函数,因此我认为不会有重大改进。你还需要它吗?这是关于代码的结构。对Jade选项使用self:false
和compiledBug:false
缓存模板是更好的性能投资(请参见谷歌的相关内容)。矩.js有一些方便的方法,例如矩(“20130218”,“yyyyymmdd”)。fromNow()代码>