RequireJS を使用して記述されたバックボーン マルチページ アプリがあります。マルチページなので、面倒なのでルーターは使わないことにしました。アプリ全体で使用するシングルトン オブジェクトを作成する複数の方法を試しました
var singletonModel= Backbone.Model.extend({
}),
return new singletonModel;
上記の場合、定義メソッドを使用してクラスの singletonModel モデルを参照し、それをそのまま呼び出しています
this.singleton = singletonModel;
this.singleton.set({'test': 'test'});
次のページのモジュールで、次のようなものを呼び出します
this.singleton = singletonModel;
var test = this.singleton.get('test');
シングルトン オブジェクトが再初期化されたようで、テスト オブジェクトが null です
var singletonModel= Backbone.Model.extend({
}, {
singleton: null,
getSingletonModelInst: function () {
singletonModel.singleton =
singletonModel.singleton || new singletonModel;
return singletonModel.singleton;
}
});
return singletonModel;
上記の場合、定義メソッドを使用してクラスの singletonModel モデルを参照し、それをそのまま呼び出しています
this.singleton = singletonModel.getSingletonModelInst();
this.singleton.set({'test': 'test'});
次のページのモジュールで、次のようなものを呼び出します
this.singleton = singletonModel.getSingletonModelInst();
var test = this.singleton.get('test');
ここでも、シングルトン オブジェクトが再初期化され、テスト オブジェクトが null になっているようです。
ルーターのないマルチページアプリを使用しているため、状態が保持されていないためかどうか疑問に思っていますか? マルチページアプリでシングルトンオブジェクトを使ってみた人はいますか? もしそうなら、シングルページ アプリでの実装方法とは何か違うことをしましたか?
ありがとう、ダーム