0

我有一个问题导致整个应用程序出现问题。我有一个主模型,它在其初始化方法中实例化了许多模型和集合。其中一些需要通过 master.get("whatever_attribute") 使用主模型的属性,但由于该实例化发生在该主对象的初始化方法完成之前,因此主对象仍未定义。

请注意,此主模型的属性不是从服务器获取的,而是作为选项传递的,因此如果没有对同步方法的一些笨拙的覆盖,使用“同步”事件不是一个选项。

这是一些代码。我希望我没有遗漏任何东西。不得不修改很多以使其清晰。

(function() {
    var App;

    App.Connection = function(config) {
        App.account = new Account(config);
        delete App.Connection;
        return App;
    };

    Mixins = {
        sync: function (method, model, options) {
            console.debug('App.account: %o',App.account); // -> undefined
            App.account.users.at(1).get("signature"); // -> undefined
            App.account.get("token"); // -> undefined
        }
    }

    var Account = Backbone.Model.extend({
        initialize: function() {
            this.users = new Users();
        }
    });
    var User = Backbone.Model.extend({
        sync: Mixins.sync
    });
    var Users = Backbone.Collection.extend({
        model: User
    });

}).call(this);

appInstance = new App.Connection({
    "token": "675938hu5gc3ntxe8fg69m8snbvdh",
    "user": {
        "signature": "vn7we8bvy8wbefhivbfsbcdfjbvdfsbv"
    }
});

有任何想法吗?

谢谢,

4

0 回答 0