複数のビューからアクセスする必要があるモデルがあり、モデル モジュールの定義でこれを達成するために、次のようにすぐにインスタンス化しています。
define([
'jquery',
'underscore',
'backbone'
], function(_, Backbone) {
var Foo = Backbone.Model.extend({
// wondrous methods and properties
});
return new Foo();
});
このモデルのインスタンスが 1 つだけ必要です。私の知る限り、これを回避するには、別のApp
モジュールを用意することです。何かのようなもの:
define([], function() {
var App = {
routers: {},
models: {},
views: {}
};
return App;
});
アプリの起動時にオブジェクトへの参照をインスタンス化して保存できます。
require([
'App',
'Foo'
], function(App, Foo) {
App.models.foo = new Foo();
});
しかし、基本的にグローバル名前空間を持つことに戻っているため、これは貧弱な代替手段だと思います。これは、RequireJSが回避するのに役立つはずのものです。
上記のように、シングルトンモデルを避ける正当な理由はありますか?