首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >填充backbone同步内部的backbone集合

填充backbone同步内部的backbone集合
EN

Stack Overflow用户
提问于 2014-01-28 23:33:02
回答 1查看 130关注 0票数 0

如何在backbone-sync内填充backbone集合,以使结果集合可以在backbone sync之外使用。

下面是一个示例:

代码语言:javascript
复制
mycollection = new MyCollection();
mycollection.fetch();

// after a few seconds ... it triggers the success function

mycollection.length; //prints 0 :S

这是我的backbone同步的代码:

代码语言:javascript
复制
define(["backbone"], function (bb) {
        bb.sync = function (method, model, options) {

            var sql = "";

            if (!model.tabla) {
                if (options && options.error)
                    options.error("No property 'tabla' for model");
            }

            switch (method) {
                case 'create':
                    break;
                case 'update':
                    break;
                case 'delete':
                    break;
                case 'read':
                    sql = "select * from " + model.tabla;
                    break;
            }

            console.log("MODELO", model);

            if (app.db == undefined) return;

            app.db.transaction(function (tx) {
                tx.executeSql(sql, [], function (tx, res) {
                        var resp = [];
                        for (var i = 0; i < res.rows.length; i++) {
                            resp.push(res.rows.item(i));
                        }

                        if (options && options.success) options.success(resp);
                    }
                );
            }, function (e) {
                console.log(e);

                if (options && options.error) options.error(e);
            });
        }
    }
);

我的问题是输入模型没有使用结果数组进行修改。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2014-01-29 05:59:09

由于您使用的是异步调用,需要在回调成功后才能采集新的数据。

您可以使用

代码语言:javascript
复制
mycollection.fetch().then(function() {
    console.log(mycollection.length);
});

代码语言:javascript
复制
mycollection.fetch({
    success: function() {
        console.log(mycollection.length);
    }
});

甚至是

代码语言:javascript
复制
mycollection.on("fetch-complete", function() {
    console.log(mycollection.length);
});

mycollection.fetch({
    success: function(collection) {
        collection.trigger("fetch-complete");
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21409886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档