2013-06-11 1 views
5

Sto costruendo un'app con funzionalità di gestione file simile a Ember.js. Vorrei l'URL per la cartella nidificata nel formato ".../#/files/Nested/Inside /" e funziona perfettamente con linkTo; tuttavia se aggiorno (o vado direttamente all'URL) ho il messaggio di errore "Nessuna route corrisponde all'URL"/files/Nested/Inside "". C'è un modo per far funzionare Ember.js in situazioni come questa? Grazie.Ember.js Cartella nidificata come route (contenere barra)

Ecco il mio attuale percorso di installazione:

FM.Router.map(function() { 
    this.resource('folders', { path: '/files' }) 
    this.resource('folder', { path: '/files/:path' }) 
}) 

FM.FoldersRoute = EM.Route.extend({ 
    model: function() { 
    return FM.Folder.find('/') 
    } 
}) 

FM.FolderRoute = EM.Route.extend({ 
    model: function(params) { 
    return ns.Folder.find(params.path) 
    }, 
    serialize: function(folder) { 
    return { path: folder.get('path') } 
    } 
}) 

risposta

6

Wow, domanda interessante. È dovrebbe essere possibile ma non ho provato da solo o visto alcun esempio di questo in natura.

Sotto il cofano, la brace usa il tildeio router e route-recognizer per risolvere i percorsi. readme del percorso spiega come define more elaborate routes come:

router.map(function(match) { 
    // this will match anything, followed by a slash, 
    // followed by a dynamic segment (one or more non- 
    // slash characters) 
    match("/*page/:location").to("showPage"); 
}); 

Quindi, per ottenere cartelle nidificate di lavoro, si potrebbe essere in grado di fare qualcosa del genere:

FM.Router.map(function() { 
    this.resource('folders', { path: '/files' }) 
    this.resource('folder', { path: '/files/*path' }) 
}) 

Spero che questo aiuti.

+0

Ha funzionato. Grazie! – tungd