2017-07-24 72 views
0

我有一個流星項目,其中有3個單選按鈕,我可以選擇不同的搜索變量;然後,單擊表單的按鈕提交,將創建在mongo中執行的查詢。在流星模板事件中顯示搜索結果

這發生在事件:

//global var 
var resultCursor; 
... 

Template.device.events({ 
    click .btn-search": function (event) { 
    event.preventDefault(); 

    [...] 

    resultsCURSOR = myCollection.find(query, queryOptions); 
}) 

現在,我有一個助手來顯示在頁面的結果。 我試圖拯救光標在一個全局變量,並將其傳遞到助手(我不能在Session VAR保存,如描述here - 它不工作)

Template.device.helpers({ 
    searchResults: function() { 
    return resultCursor; 
    } 
}) 

,而在HTML

{{#each flightSearchResults}} 
    <div class="flight-list"> 
     <p>Pilot: {{this.pilot}}</p> 
     <p>Time: {{this.date}}</p> 
    </div> 
{{/each}} 

但這不起作用。我發現了一種解決方案here,但我必須將整個查詢移動到助手,並在執行此操作之前...是唯一的解決方案嗎?這是一個很好的實踐解決方案嗎?

回答

1

把查詢(不是光標)在會話變量,就像這樣:

Template.device.events({ 
    click .btn-search": function (event) { 
    event.preventDefault(); 

    [...] 

    Session.set('query', query); 
}) 

更改您的幫助(注意,名字是錯誤的):

Template.device.helpers({ 
    flightSearchResults: function() { 
    return myCollection.find(Session.get('query'), queryOptions); 
    } 
}); 

你不需要改變你的html,你現在可以刪除所有出現的resultCursor。

+0

謝謝!我用這個解決方案=) – Diego