Fetch 与 Reset 如何正确使用 Backbone.js

发布于 2025-01-01 16:33:13 字数 754 浏览 1 评论 0原文

我有 4 个集合,应该填充来自服务器的数据!

我的 json 是嵌套的:

[ "data1":[...], "data2": [...], "data3": [...], "data4": [...] ]

我需要为每个集合提供不同的数据。

  1. 我开始使用 Fetch,但它为每个 Collections 获取了 整个json之前选择真正需要的数据。

  2. 当我有时使用重置时,集合中充满了一些数据 次不是!

    var pack = [];
    var Coll1 = new ClefsButtonsCollection();
    var Coll2 = new AccidentalsButtonsCollection();
    var Coll3 = new NotesButtonsCollection();
    var Coll4 = new RestsButtonsCollection();
    $.getJSON("/api/data.json", 函数(数据){
        Coll1.reset( data.data1 );
        Coll2.reset( data.data2 );
        Coll3.reset( data.data3 );
        Coll4.reset( data.data4 );
    });
    pack.push( Coll1, Coll2, Coll3, Coll4 );
    

如何在 Dom 加载之前填充我的收藏? 我使用 require.js

I have 4 Collections which should be filled with Data from the Server!

My json is a nested one :

[ "data1":[...], "data2": [...], "data3": [...], "data4": [...] ]

and i need a for every Collections a different data.

  1. I started to use Fetch, but it fetched for every Collections the
    whole json before to choose the real needed data.

  2. When i use reset some times Collections are filled with Data some
    times not!

    var pack = [];
    var Coll1 = new ClefsButtonsCollection();
    var Coll2 = new AccidentalsButtonsCollection();
    var Coll3 = new NotesButtonsCollection();
    var Coll4 = new RestsButtonsCollection();
    $.getJSON("/api/data.json", function(data){
        Coll1.reset( data.data1 );
        Coll2.reset( data.data2 );
        Coll3.reset( data.data3 );
        Coll4.reset( data.data4 );
    });
    pack.push( Coll1, Coll2, Coll3, Coll4 );
    

How can i filled my Collection before the Dom loaded?
I use require.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

李不 2025-01-08 16:33:13

简短的回答是,你不能。由于您必须处理 JavaScript 的异步性质,因此您无法确定一个回调是在另一个回调之前进行的。我看到的唯一方法是不调用 api,而是直接在 html 页面中呈现 JSON 结果,如 主干常见问题解答

The short answer is, you can't. As you have to handle with the asynchronies nature of JavaScript you cant be sure that one callback was made before an other. The only way I see is to not call the api but render the JSON result directly in your html page, as described in backbone FAQ.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文