Ho programmato in Javascript per un po '. Recentemente ho realizzato un progetto jQuery abbastanza grande e ho applicato il Pattern del modulo come descritto in questo meraviglioso articolo: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-DepthCome estendere gli spazi dei nomi con EmberJS
Questo è andato tutto bene e dandy e il codice sembra sdolcinato e gestibile, ma ho sentito che potrebbe essere migliore. Ho trascorrere la giornata alla ricerca di alcuni framework JavaScript, per lo più quelli che:
- Hanno UI supporto vincolante
- dispone di un sistema di templating
- può lavorare con jQuery
- aiutarmi ad organizzare il mio codice in un modo simile come ho fatto con il modello di modulo di
ho inciampato attraverso quadri come AngularJS, KnockOutJS, SpineJS, JavascriptMVC, ecc quello che realmente incollato fuori - ed è stato molto lodato - era EmberJS.
Ho deciso di fare un tentativo, ma non è stato facile. La disponibilità di tutorial per EmberJS è molto limitata. Dopo aver provato per molto tempo sono riuscito a far funzionare alcune cose e mi piace quello che fa EmberJS! C'è solo una cosa che non riesco a capire - che è anche la mia domanda: Come posso estendere uno spazio dei nomi Ember (creato con Ember.Application.create)?
Per chiarimenti: La vecchia versione del mio progetto aveva uno spazio dei nomi Core e uno spazio dei nomi Util. Entrambi contenevano le rispettive funzioni che tutte le altre classi potevano usare. Come posso avere uno spazio dei nomi Core e Util con funzioni in cima allo spazio dei nomi iniziale?
Devo solo fare:
MyNamespace = Ember.Application.create();
MyNamespace.Core = Ember.Application.create();
MyNamespace.Util = Ember.Application.create();
O qualcos'altro?
In un primo momento, grazie per la risposta rapida, molto dettagliato. In secondo luogo, non mi importa namespace non nidificati, stavo solo cercando la chiamata di funzione a destra per creare un oggetto spazio dei nomi simile, che è Ember.Namespace.Create! Se mai, avrei potuto usare il mio approccio Pattern per avere gli spazi dei nomi (sia nidificati che non) sopra un'applicazione Ember, ma è solo sporco. –
Dopo averlo provato, ho scoperto che i namespace di nesting funzionano davvero. Forse è cambiato in una versione recente a causa della grande richiesta? –