2011-12-14 11 views
7

So che ember js è buono per le app a singola pagina e sembra che si possa localizzare l'app ember js in un singolo contenitore dom piuttosto che nell'intera pagina, quindi mi chiedo se ember js sarebbe un adatto per la creazione di widget avanzati, non solo un menu a discesa un po 'elaborato o altro, ma un widget più complesso che può gestire la propria risorsa restful, ecc. O sta usando ember.js in questo modo eccessivo?ember.js widgets

Se è adatto per i widget, sarebbe possibile senza dover ricodificare i widget per utilizzare più app di widget ember sulla stessa pagina quando le app ember provengono da autori diversi, un esempio di ciò che intendo è che io può facilmente avere più plugin jquery da diverse fonti sulla stessa pagina senza conflitti.

+0

. Look correlati a http: // StackOverflow. com/domande/11571896/you-can not-uso-the-same-root-elemento-corpo-più-volte-in-an-brace-appli – iX3

risposta

10

Ember.js non sarebbe eccessivo per i widget complessi ed è completamente possibile utilizzare più app di widget ember su una singola pagina. Tuttavia, ci sarà bisogno di una piccola modifica del codice. Dal Ember.js code:.

"Per impostazione predefinita, Ember.Application inizierà l'ascolto per gli eventi sul documento Se l'applicazione è incorporato all'interno di una pagina, invece di controllare l'intero documento, è possibile specificare quale elemento DOM a allegare al impostando la proprietà rootElement:

MyApp = Ember.Application.create({ 
     rootElement: $('#my-app') 
    }); 

la radice di un Ember.Application non deve essere rimosso durante il corso della durata della pagina. Se si dispone di una sola applicazione concettuale per l'intera pagina e non si incorporano applicazioni Ember di terze parti nella propria pagina, utilizzare la root del documento predefinita per l'applicazione .

Hai solo bisogno di specificare la radice se la pagina contiene più istanze di Ember.Application."

Ora la questione ovvia sarebbe come impostare rootElement per ciascuno di questi widget prima che sia JavaScript è caricato Posso pensare a un certo numero di modi per farlo, ma il modo migliore dipende dalla configurazione di qualsiasi cosa tu stia tentando di fare, speriamo che questo ti metta sulla giusta via.