SPA アプリケーションに Durandal と Require を使用しています。また、John Papa の HotTowel テンプレートを使用しています。
私のモジュールでは、リクエストごとに作成するモジュールと、シングルトンにするモジュールが必要です。
define([], function(){
var bookId = ko.observable();
var bookName = ko.observable();
return {
bookId: bookId,
bookName: bookName
};
}
上記のモジュールは、次のようなコンポジションの使用ごとに新しいインスタンスを返すようです:
compose: {model: 'viewmodels/book'}
しかし、ビューモデルをすべてのコンポジションで同じにしたい場合はどうでしょうか。たとえばloginInfo
、多くの場所で使用されるという名前のログイン用のビューモデルが必要なため、最初のログイン時にどこかで開始されたため、各コンポジションで初期化しないでください。
compose: {model: 'viewmodels/loginInfo'}