アプリ全体に問題を引き起こしている問題があります。初期化メソッド内で多数のモデルとコレクションをインスタンス化するマスター モデルがあります。それらのいくつかは master.get("whatever_attribute") を介してマスター モデルの属性を使用する必要がありますが、このインスタンス化はそのマスター オブジェクトの初期化メソッドが実行される前に行われるため、マスター オブジェクトはまだ定義されていません。
このマスター モデルの属性はサーバーから取得されるのではなく、オプションとして渡されるため、「sync」イベントを使用することは、sync メソッドの厄介なオーバーライドなしにはオプションではないことに注意してください。
ここにいくつかのコードがあります。何も見逃していないことを願っています。明確にするためにかなり変更する必要がありました。
(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"
}
});
何か案は?
ありがとう、