gpt4 book ai didi

mongodb - 如何在传递给模板之前格式化 Collection.find 的结果

转载 作者:可可西里 更新时间:2023-11-01 10:31:47 29 4
gpt4 key购买 nike

HTML:

    <div class="leaderboard">
{{#each players}}
{{> player}}
{{/each}}
</div>
<template name="player">
<div class="player {{selected}}">
<span class="name">{{name}}</span>
<span class="score">{{score}}</span>
<span class="joindate">{{joindate}}</span>
</div>
</template>

JS:

Players = new Meteor.Collection("players");
if (Meteor.isClient) {
Template.players = function () {
return Players.find();
};
}
if (Meteor.isServer) {
Meteor.startup(function () {
if (Players.find().count() === 0) {
var names = ["Ada Lovelace",
"Grace Hopper",
"Marie Curie",
"Carl Friedrich Gauss",
"Nikola Tesla",
"Claude Shannon"];
for (var i = 0; i < names.length; i++)
Players.insert({name: names[i],
score: Math.floor(Random.fraction()*10)*5,
joindate: new Date().getTime()
});
}
});
}

在上面的示例中,我将 joindate 存储为 unix 时间戳。在返回 Template.players 函数之前,如何将连接日期变量格式化为 Collection.find 结果中的可读日期。

我知道我可以在插入命令中格式化日期,但我的问题是如何在传递给模板之前操作/格式化集合中的数据。查找。

最佳答案

你可以传递一个 transform function在创建 Collection 时:

var Players = new Meteor.collection('players', { 
transform: function(doc) {
doc.joindateStr = (new Date().getTime()).toString();
return doc;
}
});

然后在您的模板中使用 joindateStr。或者您可以将 joindate 本身重写为 Date 对象。

transform 函数将应用于 findfindOne 返回的所有文档。它也可以在第二个参数中显式传递给 find 或 findOne`。

关于mongodb - 如何在传递给模板之前格式化 Collection.find 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22420777/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com