2013-03-14 11 views
5

Ho un router con modelli corrispondenti per ogni percorso (e oggetti percorso). Voglio essere in grado di visualizzare ogni modello indipendentemente dal suo genitore, il che significa che non voglio che le rotte nidificate siano rese allo sbocco del modello principale. Essenzialmente facendo una "pagina" separata per ogni percorso nidificato.Percorso nidificato in emberjs senza utilizzare l'uscita risorse

App.Router.map(function() { 
    this.resource('recipes', function() { 
    this.route('new'); 
    this.route('show', { path: '/:recipe_id' }); 
    }); 
}); 

sto usando ember1.0.0-rc1

Grazie

risposta

4

Desidero essere in grado di visualizzare ogni modello indipendentemente dal relativo elemento principale, ovvero non desidero che le route nidificate vengano visualizzate nell'output del modello principale.

Forse affermare l'ovvio ma questo è esattamente ciò che accadrà se non si crea un modello per la risorsa. Nel tuo caso, se non crei un modello recipes.hbs, ember renderizza i modelli new.hbs e show.hbs nello {{outlet}} in application.hbs.

NOTA: Se si esegue questa operazione, sarà Ember uscita un avvertimento console "Il percorso padre immediato non ha il rendering alla presa principale ..."

Questo è spiegato più in dettaglio nella ember routing guide

+1

Grazie per la risposta. Realmente ho realizzato quello che hai detto un po 'dopo che ho fatto la domanda. Quello che ho fatto è stato, ho conservato le ricette. HBS, ma tutto ciò che conteneva era il {{outlet}}. Poi ho avuto il nuovo e lo spettacolo definito come li avevo. Tutto quello che dovevo fare era creare un nuovo template per index insieme all'oggetto route e usare {{#linkTo 'recipes.index'}} Recipes {{/ linkTo}} invece di solo {{#linkTo 'ricette'}}. ..{{/Collegamento a}} – spullen

0

Ember.js non supporta percorsi di nidificazione, supporta solo le risorse di nidificazione. La rotta nidificata alla fine può contenere una rotta.

Pensa alle risorse come alle cose e le rotte come azioni.

1

Rapida nota dalle guide brace

Se si definisce una risorsa che utilizza this.resource e non si fornisce una funzione, la rotta implicita resource.index non viene creata. In tal caso,/resource utilizzerà solo ResourceRoute, ResourceController e il modello di risorse.

Il tuo percorso è fine e @mikegrassotti è corretta, anche se se si desidera un indice per "ricette" senza avere il vostro "nuovo" e "mostra" modelli di percorso annidati dentro "ricette" (senza padrone/dettaglio) sarà necessario creare un modello di ricette/indice senza sbocco all'interno.

<script type="text/x-handlebars" data-template-name="recipes/index"> 
<ul> 
    {{#each}} 
    <li>{{recipe}}</li> 
    {{/each}} 
</ul> 

Non è necessario modificare la configurazione del percorso. Come menzionato sopra, ember renderizzerà i modelli new.hbs e show.hbs nel {{outlet}} in application.hbs

Problemi correlati