gpt4 book ai didi

backbone.js - 如何在渲染 View 之前管理为两个不同模型获取数据?

转载 作者:行者123 更新时间:2023-12-04 05:09:42 25 4
gpt4 key购买 nike

我有一个描述组织的模型和一个描述组织权限的子集合。

在我看来,我需要在渲染之前从两个模型中获取数据。当我将 View 渲染方法绑定(bind)到一个事件(例如 model.change 或 subcollection.sync)时,有时我的屏幕会在我的模型被填充之前显示,从而产生错误。

这是我的代码的相关部分:

  this.model = new OrgModel({id: id});
this.model.permissions = new PermissionsCollection({org: id});

this.model.permissions.on("sync", this.render); // SOMETIMES GETS CALLED BEFORE model:sync GETS CALLED

this.model.permissions.fetch({error: Utils.apiError});
this.model.fetch({error: Utils.apiError});

我不确定要调用哪个事件“渲染”-因为有时每个请求都会先返回。

有没有办法将“同步”事件绑定(bind)在一起,以便在调用 model.fetch 时,它会依次调用 subcollection.fetch,并且在调用 subcollection:sync 之前不会传回“同步”事件?

最佳答案

var deferred1, deferred2, that = this;
this.model = new OrgModel({id: id});
this.model.permissions = new PermissionsCollection({org: id});
deferred1 = this.model.permissions.fetch({error: Utils.apiError});
deferred2 = this.model.fetch({error: Utils.apiError});

$.when(deferred1, deferred2).then(function(){
that.render();
});

延迟和 promise 有一个非常强大的概念。有关该主题的更多信息,请阅读 api.jquery.com/jQuery.Deferred

关于backbone.js - 如何在渲染 View 之前管理为两个不同模型获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15025566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com