2013-05-07 16 views
13

Nella mia app ho il requisito che un'area funzionale si apra in una sovrapposizione in modo tale che si trovi sulla parte superiore del percorso corrente che potrebbe essere praticamente qualsiasi altra via nell'app.Più router in ember.js?

Questa area funzionale avrà i propri percorsi in quanto contiene almeno una vista dettagli principale.

Qual è la migliore prassi corrente per gestire questa situazione?

È possibile avere percorsi di primo livello che non distruggano il percorso/le viste correnti quando vengono inseriti? In caso contrario ed è necessario che ApplicationController (o simili) gestisca l'overlay accessibile a livello globale, qual è il modo migliore per ottenere funzionalità simili a router per quell'area?

+0

forse Ember.Namespace http://emberjs.com/api/classes/Ember.Namespace.html è interessante per questo tipo di attività architettonica, ma non è sicuro. – intuitivepixel

+1

vedendo questa domanda ancora senza risposta mi fa pensare a un altro modo possibile di avere funzionalità come router per la tua area di messaggistica, StateManager di Ember: http://emberjs.com/api/classes/Ember.StateManager.html – intuitivepixel

+0

Sì, stavo pensando io potrebbe dover utilizzare un StateManager separato. A breve dovrò rivisitare quest'area, aggiornerò qui se avrò successo. –

risposta

1

Penso che ti sia confuso il aperto in overlay e stai provando a risolvere un problema inesistente.

Aprire la funzionalità di messaggistica in un'altra pagina della tua app o aprirla come sovrapposizione in cima all'app è solo una cosa di design che dovrebbe essere gestita dai CSS e dal router di app esistente. Basta creare il percorso di messaggistica, il controller, ecc.

Non lo hai detto, ma nel caso in cui desideri avviare l'applicazione separata, l'approccio migliore è aprirlo nell'iframe. Nuova app, nuovo ciclo di vita, ecc. Ancora, come lo si visualizza in un'altra app è solo questione di CSS.

+0

Per questa particolare caratteristica, il requisito è che sia in grado di aprire __on top__ di qualsiasi altra route, quindi non è possibile passare a una rotta sul router esistente. Pensala come una modale complessa che ha i suoi "percorsi" ma che non è affatto rappresentata nell'URL. Ho rimosso la dicitura "messaggistica" dalla domanda in quanto penso che potrebbe confondere le cose. –

+0

@KevinAnsfield Ora per me sembra che tu abbia bisogno di una vista - http://emberjs.com/guides/views/ Puoi inserirla in molti posti (percorsi diversi) nella tua app. Ha un proprio controllore, può associare proprietà al controller/modello in cui è stato incorporato in modo da poterlo riutilizzare attraverso l'app. –

+0

Questa parte comprendo, quello che sto avendo difficoltà è capire come collegare più controller e viste insieme all'interno di quella vista, come tenere traccia dello stato all'interno di quella vista e come tenere traccia dello stato della vista visibile/nascosta. –