gpt4 book ai didi

javascript - 在 meteor 渲染之前,如何解析对其他集合中数据库记录的引用?

转载 作者:行者123 更新时间:2023-11-28 02:13:36 26 4
gpt4 key购买 nike

我正在使用meteor在显示交易列表的页面上。交易文件如下所示:

{ payer: 'username1', payee: 'username2', amount: 100, date: someDate }

要显示这样的交易列表:


<ul class="recent-transactions">
{{#each transactions}}
<li>{{this.amount}} to {{this.payee}} from {{this.payer}}</li>
{{/each}}
</ul>

在助手中,或者在以某种方式渲染模板之前,我想替换 payeepayer属性与我可以通过 Meteor.users.findOne({ username: someUsername}) 获得的实际用户文档这样模板就可以如下所示:


<ul class="recent-transactions">
{{#each transactions}}
<li>{{this.amount}} to {{this.payee.profile.FirstName}} from {{this.payer.profile.FirstName}}</li>
{{/each}}
</ul>

有办法做到这一点吗?

最佳答案

您还可以使用变换函数(请参阅变换下的http://docs.meteor.com/#collections)

Template.hello.transactions = function(){
return Transactions.find({}, {transform: function(doc) {
var payee = Meteor.users.findOne({username: doc.payee});
var payer = Meteor.users.findOne({username: doc.payer});
doc.payer_FirstName = payeer.profile.FirstName;
doc.payee_FirstName = payee.profile.FirstName;

return doc;
}
});
}

转换函数可以让您在返回文档之前对其进行更改,所有现有字段都会保留,并且 payee_FirstNamepayer_FirstName 现在都会添加,就好像它们是文档的一部分一样集合。

在上面的示例中,我使用了Meteor.users。确保所有用户的详细信息都以安全的方式发布。默认情况下,我认为 Meteor 会隐藏除登录用户之外的所有用户。

因此您可以将其解析为不同的集合。在本例中,payer/payee 记录与 Meteor.users 中的username 相匹配。因此,您可以提取收款人/付款人的详细信息,而无需将所有详细信息存储在交易中。

关于javascript - 在 meteor 渲染之前,如何解析对其他集合中数据库记录的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722134/

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