2013-04-29 236 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散列,訂單將自動更改並重新呈現。