Sto utilizzando BackboneJS con RequireJS per un'applicazione che sto creando.Variabile globale in un router BackboneJS utilizzando RequireJS
Un file App
inizializza il Router:
// Define application router
var router = new AppRouter();
Backbone.history.start();
E poi il router prende il controllo di azioni di sistema.
var App = Backbone.Router.extend({
routes: {
"project/:id": "getProject",
"projects": "getProjects",
"*actions": "defaultRoute"
},
getProject: function (id) {
// dashboard.set('some_key', 'some_value');
},
getProjects: function() {
// dashboard.set('some_key', 'some_value');
},
defaultRoute: function() {
// dashboard.set('some_key', 'some_value');
}
});
Ho aggiunto un modello Dashboard
e vista che uso per visualizzare le informazioni sullo stato globale del mio sistema in un dato momento. (Questo siederà in cima alla finestra). La sua vista monitora il suo modello per la modifica dei valori e il re-rendering quando necessario. Funziona bene
Voglio evitare di dover riscrivere questo mai dopo il mio esemplificazione oggetto iniziale:
var dashboard = new DashboardModel();
var dashboardView = new DashboardView({ model: dashboard });
$('#dashboard-placeholder').html(dashboardView.render().el);
Che cosa ho bisogno, però, è quello di essere in grado di accedere a questo oggetto ovunque (un'istanza della mia Dashboard
modello). Al momento l'ho inizializzato in App
ma non posso accedervi nel router se faccio questo. Non voglio veramente definirlo nel router perché non sembra il compito giusto da eseguire per il router.
Come e dove definisco questa istanza del mio modello Dashboard
?
risposta brillante, grazie mille. Avevo in mente un approccio singleton, ma non ero ancora sicuro di come creare un metodo statico! Ha funzionato alla grande, grazie. – Alex