0

我正在使用Backbone和Rails(3.1)。我有一個搜索頁面。應該在頁面加載時呈現第一個搜索結果,顯示分頁的所有結果。稍後的搜索請求將使用主幹。我如何在不違反DRY的情況下做到這一點?Rails&Backbone ::何時呈現結果?

我可以在Backbone中完成所有的請求,但是(1)在頁面加載(2)時多一個請求,骨幹喜歡在啓動時設置集合。

從骨幹文檔:

加載自舉模式 當你的應用程序首次加載時,它是常見的有一組你知道你會需要初始模型,爲了渲染頁面。與其發出額外的AJAX請求來獲取它們,更好的模式是將其數據引導到頁面中。然後,您可以使用重置來使用初始數據填充您的集合。在DocumentCloud,在工作區的ERB模板,我們做的東西沿着這些路線:

<script> 
    Accounts.reset(<%= @accounts.to_json %>); 
    Projects.reset(<%= @projects.to_json(:collaborators => true) %>); 
</script> 
+0

在主幹中執行所有請求。 (1)以相同的方式進行所有搜索更簡單,(2)我不確定這是否屬實。 –

回答

1

你可以做所有的渲染在骨幹做到這一點,並讓服務器只計算數據。

在第一次搜索,您包括您的搜索結果爲JSON在Rails查看:

<script type='text/javascript'> 
    var search_results = new SearchResults(<%= results.to_json %>) 
</script> 

所以你初始化模式,讓骨幹做的結果呈現。 (您不會在Rails視圖中呈現結果。)

在後續搜索中,您將從rails獲取JSON結果並在Backbone中重置您的search_results集合,並使用相同的視圖呈現結果。