2014-11-18 10 views
9

Sulla base recommendations for the preparation for Ember 2.0 ...generare componenti in sotto-cartelle in brace/brace-cli

• In generale, sostituire Visto + controller con componenti
• Solo i controller di utilizzo a livello di percorso ...

... noi dovremmo astenersi Controller s e View s in favore di Component s. Non sono stato in grado di capire e/o capire come generare componenti che non sono i genitori diretti della cartella dei componenti, ovvero componenti/nome-componente.js.

cartella My controller attuale sembra qualcosa di simile:

/controllers 
    /account 
     index.js 
     edit.js 
    /business 
     index.js 

Fondamentalmente, ci sono sotto-cartelle che logica di gruppo basata su sezioni dell'applicazione. Come faccio a realizzare questo con i componenti solo?

Vedendo che i componenti devono avere un "-" in loro, ho provato, ma un errore ...

ember generate component account/index-module.js 
You specified "account/index-module.js", but due to a bug in Handlebars (< 2.0) slashes within components/helpers are not allowed. 

fare tutti i componenti devono essere come

components 
    account-index.js 
    account-new.js 
    business-index.js 

vale a dire tutti in la stessa cartella? Questo comincerà a sfuggire di mano con l'aggiunta di quello che io effettivamente consideriamo come componenti (cose come video-viewer.js, text-editor.js, radio-button.js) come.

Mi piacerebbe molto avere componenti in sottocartelle, ma non so come farlo.

components 
    /media 
     /audio 
      audio-player.js 
     /video 
      video-player.js 
    /text-editing 
     text-editor.js 
     editor-toolbar.js 

cartella My componenti è già grave e io siamo appena iniziato:

enter image description here

Va bene a lasciare la logica di conto/incassi nel Controller (visto che fa dire si dovrebbe usare controllori a livello di percorso)?

Sono davvero confuso su questa convenzione "tutti i componenti, tutto il tempo".

risposta

7

Ok, quindi ho avuto lo stesso problema e come ember 1.9-beta.3 (è la versione che ho testato).È possibile avere componenti annidati nelle directory delle risorse.

Ciò significa che è possibile avere un percorso o una risorsa "utente". Supponiamo che tu abbia un componente che vuoi utilizzare solo con la risorsa utente, quindi vuoi mettere il componente nella directory delle risorse.

Il modo per farlo è inserire il componente nella directory delle risorse app/pods/user/component-name/template.hbs. La parte importante è ricordare che i componenti devono avere il trattino nel loro nome. Non può essere solo .../user/component deve essere .../user/component-name con un trattino. Quindi puoi usare il componente come {{user/component-name}} nei tuoi modelli.

Inoltre, penso che questo sia possibile solo quando si utilizza la struttura del pod.

1

Come suggerisce l'asserzione, questo è dovuto a Handlebars 1.x e sarà presto disponibile.

Le versioni beta di Ember 1.9 attualmente supportano questo, anche se non sono sicuro che il risolutore di ember-cli possa utilizzarlo al momento. Puoi leggere ulteriori informazioni su Handlebars 2.0 here.

L'utilizzo di una struttura pods aiuterà anche con l'organizzazione e credo che sarà la strategia consigliata in futuro.

Per ora, suggerirei di non preoccuparsene! Ricorda che il piano di transizione sarà fluido e, man mano che le versioni ufficiali usciranno per la CLI di Ember e di Ember, riceverai avvisi di deprecazione.