que tienen un modelo que debe ser visitada por varios puntos de vista y para lograr esto en la definición del módulo modelo Estoy crear instancias de inmediato, así:Modelos Singleton Backbone con RequireJS: ¿antipatrón?
define([
'jquery',
'underscore',
'backbone'
], function(_, Backbone) {
var Foo = Backbone.Model.extend({
// wondrous methods and properties
});
return new Foo();
});
lo único que realmente necesitan una instancia de este modelo - ahora mismo eso es. La solución para esto hasta donde yo sé es tener un módulo App
por separado. Algo así como:
define([], function() {
var App = {
routers: {},
models: {},
views: {}
};
return App;
});
en el que se puede crear una instancia y almacenar referencias a objetos en el arranque de aplicaciones:
require([
'App',
'Foo'
], function(App, Foo) {
App.models.foo = new Foo();
});
pero siento que esta es una mala alternativa ya que esencialmente está volviendo a tener una espacio de nombres global, que es algo que RequireJS supuestamente ayuda a evitar.
¿Hay alguna alternativa y hay alguna buena razón para evitar tener modelos singleton como he descrito anteriormente?
Debería estar completamente bien tal como lo ha hecho en su primer ejemplo. –