2012-12-30 13 views
15

Esiste un buon tutorial o documento Ember.js che descrive la struttura di directory per modelli/viste/controller, app.js e il modo per fare riferimento a tali file nel file root index.html.Struttura di directory del progetto Ember.js

  • File per creare "Ember.Application.create"?
  • ordine di inclusione (models.js, apps.js, controller.js)?

risposta

2

Ci sembra essere ancora alcuna convenzione chiare, ma attualmente molte persone sembrano essere utilizzando Yeoman e il generatore di Ember ufficiale https://github.com/yeoman/generator-ember

Mentre apprezzo la natura "aperta" dei tutorial tempora, una delle cose più belle about Rails è la convenzione per il posizionamento dei file. Quando assumiamo un nuovo sviluppatore, non abbiamo bisogno di dare una spiegazione sulla nostra struttura di directory ... Spero che Ember stabilisca presto uno standard ufficiale.

4

This tutorial by Dan Gebhardt mi è stato di grande aiuto nell'impostare la struttura del mio progetto e nel capire come includere i file.

+1

+1. Mi piace molto questa struttura. Secondo me è molto meglio per le applicazioni di fascia media a quelle più grandi, quindi la risposta accettata, che probabilmente si confonderà molto rapidamente. – Nic

4

Il ember-skeleton project ha un ragionevole esempio di layout di progetto per la pipeline rake. Lo fanno qualcosa di simile (from the README):

 
ember-skeleton 
├── Assetfile - App build file 
├── Gemfile - Package dependencies for rakep/rack 
├── Gemfile.lock - Here be dragons: don't touch, always include 
├── app - App specific code 
│ ├── css - App CSS or SCSS (.scss) 
│ ├── lib - App code, *modularized during build* 
│ ├── modules - Module code, *already modularized* 
│ ├── plugins - Plugins (e.g. jquery.jsonrpc.js) 
│ │ └── loader.js - JS module loader 
│ ├── static - Static files, never touched, copied over during build 
│ ├── templates - Handlebars templates, *modularized during build* 
│ ├── tests - QUnit application tests 
│ └── vendor - Vendor code, *modularized during build* 
├── assets - Built out asset files, minified in production 
│ ├── app.css - Built out app CSS/SCSS 
│ ├── app.js - Built out app JS 
│ └── loader.js - Built out JS module loader 
├── config.ru - Rack development web server configuration 
├── index.html - The app entry point 
├── tests - QUnit testing files 
│ ├── index.html - The testing entry point 
│ ├── qunit - Testing support files 
│ └── run-tests.js - The PhantomJS QUnit test runner 
└── tmp - Temporary build files used by rakep 
4

Ho un layout che io sono abbastanza contento

app.js - Questo è il file principale dell'applicazione e include le impostazioni e il router

views.js - contiene viste utilizzate all'interno della app, anche se io di solito ora dividere questo fuori per homeView.js navigtaionView.js ecc

dataModels.js - questo è dove tengo tutti i miei oggetti del modello dei dati per l'applicazione

0.123.

dataSources.js - Uso questo per caricare datamodels o matrici di datamodels da eventuali chiamate API faccio

accountController.js - classe controllore, nel campione allegata Ho anche un emailMessagingController e uno smsMessagingController

È possibile trovare il mio progetto di esempio qui

https://github.com/bwship/neptunejs

ei file CoffeeScript per brace qui

https://github.com/bwship/neptunejs/tree/master/public/coffeescripts

e, infine, il file JAD per il layout e l'indice che mostra come aggiungo questi qui

https://github.com/bwship/neptunejs/tree/master/views

Voglio iniziare eventualmente utilizzando lo stile dei dati brace, ma ho messo un paio app solide che utilizzano i file dataSources e dataModels.

+0

Direi che questo è un buon punto di partenza per le app più piccole.Tuttavia, penso che questo tende a diventare piuttosto complicato se si desidera creare app più grandi e suddividendo file modello/vista/controller/modello separati sarebbe una soluzione migliore. – Nic

+0

Sì, sicuramente. L'ho configurato su progetti più grandi con app, controller, modelli, percorsi e cartelle di viste con file separati per ciascuno. E poi una cartella di modelli con i modelli di manubri. – WallMobile

Problemi correlati