2015-04-30 5 views
5

Sto tentando di creare un substate di caricamento per il percorso dell'applicazione utilizzando lo new named substate options aggiunto di recente, ma per qualche motivo, non riesco a farlo funzionare. In origine, avevo appena creato un modello semplice, loading.hbs, e funzionava automaticamente, ma a causa dei problemi con i sottostati sul percorso dell'applicazione, alcune delle mie UI erano ancora visibili. Mi piacerebbe correggere questo ora.Crea il sottostazione di caricamento per il percorso dell'applicazione

Ho provato a cambiare titolo e spostando il modello intorno alle seguenti località:

/templates/application_loading.hbs 
/templates/application-loading.hbs 
/templates/application/loading.hbs 

Nessuno sembra funzionare, però. Non ho bisogno di alcun comportamento di routing personalizzato, quindi il percorso generato di default dovrebbe farmi, a meno che non sia un requisito per farlo funzionare. La documentazione su questa funzione sembra essere scarsa. Ho trovato il jsbin for this feature e dovrei farlo correttamente in base ad esso, a meno che non ci sia qualche problema con ember-cli.

Grazie per l'assistenza.

DEBUG: ------------------------------- 
DEBUG: Ember  : 1.11.1 
DEBUG: Ember Data : 1.0.0-beta.16.1 
DEBUG: jQuery  : 1.11.2 
DEBUG: ------------------------------- 

risposta

1

Davvero dovrebbe google prima di aggiungere il taglia.

Evidentemente, questa funzione è broken. C'è già un fix, deve solo essere unito e rilasciato.

0

Sembra che devi avere un moduleBasedResolver

https://github.com/emberjs/ember.js/blob/06e41ad7ccd28558dd4e651aa070bc06f7757821/packages/ember-application/lib/system/application-instance.js#L153

https://github.com/emberjs/ember.js/blob/b80d66f71d75ad0db9022438ed58a41ac84f45f5/packages/ember-routing/lib/system/router.js#L79

Quando guardo questo valore in un app brace-cli è indefinito. Che sembra strano perché ember-cli è basato su moduli es6.

Quindi ho trovato che questo https://github.com/emberjs/ember.js/issues/10756 sembra come se fosse possibile aggiungere un'applicazione di percorso, il caricamento o l'hack in moduleBasedResolver nel Registro di sistema come soluzione temporanea.

e

https://github.com/emberjs/ember.js/pull/10944 dovrebbe risolvere il problema a lungo termine.

Sembra che l'abbia già trovato, non è stato caricato quando ho scritto questa risposta. Ci scusiamo per il rumore.

+0

Poiché parte dell'interfaccia utente, cosa c'è nel modello di applicazione, è ancora visibile. Dovresti leggere il paragrafo subito dopo quello che hai citato: "I sottostati nominati aggiungono un nuovo metodo di ricerca per i sottostati.Il nome del percorso è pre-pended sul substate.Quindi un substate di caricamento valido per l'applicazione può essere definito come application_loading. " I sottostati con nome hanno lo scopo specifico di risolvere questo problema, ma per qualche motivo non funziona. – NicholasJohn16

+0

Aha yah Ho letto male quella. Penso di aver scoperto dov'è il problema. Aggiornamento della risposta. – varblob

+0

Ti ha dato la grazia per lo sforzo. : P – NicholasJohn16

1

Credo che loading.hbs e error.hbs siano sottostati di caricamento e errore dell'applicazione. Il tuo application-loading.hbs non esiste in Ember, motivo per cui non funziona.

Come per gli elementi dell'interfaccia utente aggiuntivi: credo che il resto di application.hbs verrà eseguito indipendentemente da rendering, quindi l'unico suggerimento che vorrei fare è nidificare tutti quegli elementi di un livello più profondo. Suona come una grande prova, ma in realtà non è poi così male:

In router.js:

this.resource('whatever', {path: '/'} function() { 
    // All your existing routes 
}); 

quindi rinominare application.hbs-whatever.hbs e cambiare application.hbs avere solo {{outlet}} in esso. Questo in pratica dovrebbe davvero cambiare molto poco, ma manterrà il resto degli elementi dell'interfaccia utente dal rendering fino al completamento del caricamento.

Problemi correlati