2013-04-29 194 views
0

内流星变更后的辅助集合的排序顺序,我要改变这种动态循环内部呈现一个集合的顺序:流星 - 渲染

Template.chartPage.helpers({ 

    employee:function(){ 

     sortArr = []; 
    var timePeriod = Session.get("period"); 
    var currentPage = Session.get("current_page"); 
     sortArr[currentPage+'.'+timePeriod] = "asc"; 
     return EmployeeCollection.find({}, sortArr).fetch(); 
    }, 
}); 

HTML:

{{#each employee}} 
    {{first_name}} 
{{/each}} 

我想这样,当对periodcurrent_page改变会话变量,这样做的排序顺序的帮手 - 会话变量也得到更新,但模板不重新描绘成一个排序。

回答

1

在流星数据库(目前)基于关mongodb的。升序为1,降序为-1。你最后的数组必须是这样的:

return EmployeeCollection.find({}, {sort : {number: -1, size: 1} }) 

应该让你按下列顺序(每行一个文件)与numbersize领域。关于如何使用MongoDB的处订购

{ number : 5, size: 1, _id: ...} 
{ number : 4, size: 2, _id: ...} 
{ number : 3, size: 3, _id: ...} 

更多细节:http://docs.mongodb.org/manual/reference/method/cursor.sort/

在另一方面你没有返回一个指针到模板助手时使用fetch()。流星会自动解析它,而不必像数组一样通过它(取回)

只要遵循此结构,您就可以使用Session来构建排序查询。只要您更改Session散列,订单将自动更改并重新呈现。