Sto scrivendo un'applicazione JavaScript piuttosto complessa che ha un'architettura MVC che sto implementando utilizzando il supporto Class
di Prototype e il modello Module. L'applicazione utilizza AJAX e il pattern Observer. Creo l'istanza del mio controller quando il DOM è stato caricato, lo passo una vista e alcuni modelli creati dai dati JSON e via.Le proprietà di impostazione sull'oggetto Window sono considerate pratiche errate?
Tuttavia, ho scoperto che devo impostare il mio esempio controller come una proprietà sulla Window
oggetto — cioè dichiararla senza usare var
— perché ho un successo di callback AJAX che rinfresca l'oggetto vista di proprietà del controllore e a questo punto del codice il mio piccolo mondo MVC non è nel campo di applicazione.
Ho esaminato il passaggio dell'oggetto vista come parametro alla funzione contenente il codice AJAX, ma questo è diventato molto caotico e avrebbe causato alcune orribili violazioni del pattern MVC, come l'accoppiamento del modello e della vista. E 'stato orrendo.
sta facendo le cose come la memorizzazione di mia istanza di controllo direttamente sul Window
cattiva forma in considerazione? Ha un odore un po 'come usare una variabile globale per me, ma non riesco a vederlo da nessuna parte.
Puoi pubblicare un esempio di codice piccolo? –
Non posso aver paura. Sono a casa e il codice è al lavoro e, cosa più importante, penso che dovrei pubblicare una quantità significativa di codice per illustrare il punto: non mi piace leggere le domande sul "muro di testo", quindi non vorrei infliggerlo agli altri! –
Perché l'MVC dovrebbe essere fuori portata? Non dovrebbe almeno catturare un riferimento in una chiusura dal tuo callback AJAX? – MooGoo