在渲染 Backbone.View 时,您通常会将模型的当前状态model.toJSON()
以及一些额外的属性传递给它。这是一个同步任务。
您如何处理模型上需要异步任务的属性,例如需要从服务器获取的另一个模型的 id(例如person_id
)
您是否在同步和渲染之前解析并将人员属性附加到模型属性中,或者您是否渲染视图并监听人员获取事件以在之后重新渲染该部分视图?
注意。我正在使用 Backbone.Marionette,所以对更改渲染方法有点限制
在渲染 Backbone.View 时,您通常会将模型的当前状态model.toJSON()
以及一些额外的属性传递给它。这是一个同步任务。
您如何处理模型上需要异步任务的属性,例如需要从服务器获取的另一个模型的 id(例如person_id
)
您是否在同步和渲染之前解析并将人员属性附加到模型属性中,或者您是否渲染视图并监听人员获取事件以在之后重新渲染该部分视图?
注意。我正在使用 Backbone.Marionette,所以对更改渲染方法有点限制
答案是:这取决于:-)
根据情况,您可以:
通常,如果您要显示“新”数据(即需要获取整个模型),我会在获取数据时显示加载视图,然后在获取时显示新视图(和数据)(参见https://github.com/davidsulc/marionette-gentle-introduction/blob/master/assets/js/apps/contacts/show/show_controller.js)
但在其他情况下(例如,用户返回到“您可能还喜欢”产品的列表,例如在亚马逊上),您可以显示您手头的数据,获取“新鲜”数据并重新呈现视图。
总而言之,这实际上取决于您要提供的用户体验。