如何处理Backbone视图中的异步链接模型

时间:2013-10-09 08:26:52

标签: javascript backbone.js marionette backbone-model

渲染Backbone.View时,通常会将模型model.toJSON()的当前状态传递给它,可能会有一些额外的属性。这是一项同步任务。

如何处理模型上需要异步任务的属性,例如需要从服务器获取的另一个模型的id(例如person_id

您是否在同步和渲染之前解决并将人员属性附加到模型属性中,或者您是否渲染视图并侦听人物提取事件以在之后重新渲染视图的该部分?

NB。我使用的是Backbone.Marionette,所以我只想改变渲染方法

1 个答案:

答案 0 :(得分:0)

答案是:它取决于: - )

根据具体情况,您可以:

  • 从服务器获取模型,然后显示视图
  • 更新已显示的模型

通常如果您正在显示“新”数据(即需要获取整个模型),我会在获取数据时显示加载视图,然后显示新视图(和数据)获取(参见https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/show/show_controller.js

但在其他情况下(例如,用户返回“您可能也喜欢”的产品列表,例如在亚马逊上),您可以显示手头的数据,获取“新鲜”数据,并重新呈现视图

总而言之,它实际上取决于您想要提供的用户体验。