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

How do you handle async linked models in Backbone views

本文关键字:视图 异步 模型 链接 何处理 处理      更新时间:2023-09-26

渲染 Backbone.View 时,您通常会传递模型model.toJSON()的当前状态,也许还会传递一些额外的属性。这是一个同步任务。

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

您是在同步和渲染之前解析 person 属性并将其附加到模型属性,还是渲染视图并侦听 person fetch 事件以在之后重新渲染该部分视图?

铌。我正在使用Backbone.Marionette,所以我有点局限于更改渲染方法

答案是:这取决于:-(

根据具体情况,您可以:

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

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

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

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