我有一个问题导致整个应用程序出现问题。我有一个主模型,它在其初始化方法中实例化了许多模型和集合。其中一些需要通过 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"
}
});
有任何想法吗?
谢谢,