2013-05-08 38 views
1

我有这样的事情:使用会话更改流星排序顺序?

var getArticles = function one() { 

return articles.find({}, {sort: {'published': -1, 'votes': -1}, limit: 100}); 

}; 

我想排序顺序从“发布”,以“票”而改变。我认为你可以像这样做:

Template.mytemplate.events({ 
'click .sort_by_votes': function() { 

Session.set('order', 'votes'); 
return getArticles(); 

} 
}); 

但我没有任何运气。任何人都知道如何做到这一点?

回答

2

你必须使用Session.getSession.equals,并确保你不拆分的辅助功能和活动功能

Template.mytemplate.events({ 
    'click .sort_by_votes': function() { 
     Session.set('order', 'votes'); 
    } 
}); 

那么你的模板帮手

Template.mytemplate.articles = function() { 
    var sort = {published:-1, votes:-1}; 

    if(Session.equals("order", "votes")) sort["votes"] = 1 

    articles.find({}, {sort: sort, limit: 100}); 
} 

这是挂钩达到您的mytemplate模板:

<template name="mytemplate"> 
    {{#each articles}} 
     ... 
    {{/each}} 
</template>