我在我的Meteor应用程序中添加了一个对象数组到我的用户集合,名为contacts
。它现在看起来像这样:
{
"_id" : "p6c4cSTb3cHWaJqpG",
"createdAt" : ISODate("2016-05-11T11:30:11.820Z"),
"services" : {
.....
},
"username" : "admin",
"emails" : [
{
"address" : "email@email.com",
"verified" : true
}
],
"points" : 28,
"contacts" : [
{
"when" : ISODate("2016-06-02T12:22:53.747Z"),
"who" : "4YBufbE9PByJBkasy"
},
{
"when" : ISODate("2016-06-02T12:00:41.833Z"),
"who" : "EvF7DbFazmiuG86mD"
},
{
"when" : ISODate("2016-06-02T12:21:41.415Z"),
"who" : "MNFTSzjjzmYWgDvey"
}
]
}
我可以很好地在我的页面上显示联系人,但它们按照它们在集合中出现的顺序排列。 我想按when
字段中的日期对它们进行排序。这可能吗?
我的助手方法:
Template.contacts.helpers({
'cont': function(){
var user = Meteor.user();
return user;
}
});
和我的模板:
<template name="contacts">
{{#each cont.contacts}}
<h1><a href="/message/{{who}}">{{who}}</a></h1>
{{/each}}
</template>
答案 0 :(得分:1)
Akram Saouri走在正确的轨道上,我只需要深入挖掘一下。所以我会发布我提出的100%工作解决方案。 The docs are your friend
Client.js:
Template.contacts.helpers({
'cont': function(){
var contacts = Meteor.user().contacts;
var result = contacts.sort(function (a,b) {
if (a.when > b.when){
return -1;
}
if (a.when < b.when){
return 1;
}
return 0;
});
return result;
}
});
Blaze模板:
<template name="contacts">
{{#each cont}}
<h1><a href="/message/{{who}}">{{who}}</a></h1>
{{/each}}
</template>
答案 1 :(得分:0)
您可以直接从帮助程序发送contacts数组,并按照以下方式对其进行预先排序:
Template.contacts.helpers({
'cont': function(){
var user = Meteor.user();
var contacts = user.contacts.sort({'when':'-1'})
return contacts;
}
});
通过这种方式,你可以看起来更简单:
<template name="contacts">
{{#each contacts}}
<h1><a href="/message/{{who}}">{{who}}</a></h1>
{{/each}}
</template>