繁体   English   中英

Rails&Backbone ::什么时候渲染结果?

[英]Rails & Backbone :: when to render results?

我正在使用带有Rails的Backbone(3.1)。 我有一个搜索页面。 显示第一页的搜索结果,显示所有已分页的结果,应在页面加载时呈现。 以后的搜索请求将使用主干。 如何做到这一点而又不违反DRY?

我可以在Backbone中完成所有请求,但是(1)这是页面加载上的另一个请求(2)主干喜欢在启动时设置集合。

从骨干文档:

加载自举模型当您的应用首次加载时,通常会拥有一组您知道将要呈现页面的初始模型。 与其触发一个额外的AJAX请求来获取它们,一种更好的模式是使它们的数据已经被引导到页面中。 然后,您可以使用reset将初始数据填充到集合中。 在DocumentCloud,在工作空间的ERB模板中,我们按照以下步骤进行操作:

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

您可以通过在Backbone中进行所有渲染来做到这一点,并让服务器仅计算数据。

在第一个搜索中,您将搜索结果作为JSON包含在Rails视图中:

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

因此,您可以初始化模型,然后让Backbone渲染结果。 (您不会在Rails视图中呈现结果。)

在随后的搜索中,您从rails获取JSON结果,并在Backbone中重置search_results集合,并且相同的视图呈现结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM