con la mia ricerca, sono arrivato a questo: Diciamo che avete un router definito come questo :
App.Router.map(function(match) {
match('/').to('index');
});
ApplicationTemplate:
<script type="text/x-handlebars">
{{outlet header}}
{{outlet}}
</script>
IndexTemplate:
<script type="text/x-handlebars" data-template-name="index">
{{outlet dashboard}}
{{outlet spaces}}
</script>
Ora, Quello che vogliamo è che quando l'utente va al router indice, la pagina dovrebbe:
- Render indice in uscita principale e intestazione nella presa di intestazione di applicazione modello.
- dashboard di rendering, modello di spazi nel modello di indice.
Per raggiungere questo obiettivo, scriviamo il seguente codice nel indexRoute
App.IndexRoute = Em.Route.extend({
renderTemplate: function(controller, model){
//Render header into header outlet
this.render('header',{
outlet:'header'
});
//Render index into main outlet. If you comment out
//this line, the code below fails
this.render('index');
//by using into, we can render into the index template
//Note: The controller is optional.if not specified,
//ember picks up controller for the given template.
this.render('dashboard',{
outlet:'dashboard',
into:'index',
controller:this.controllerFor('somethingElse', App.TestModel.find())
});
//controller is SpacesController
this.render('spaces',{
outlet:'spaces',
into:'index'
});
}
});
Abbastanza simile alla mia risposta originale eh? –
Il mio primo pensiero è stato quello di chiederti di aggiornare le tue funzioni in conformità con ember-latest, in modo da poter accettare la tua risposta. Tuttavia, volevo davvero che ci fosse this.render ('index') e successivi rendering in esso. Il tuo codice viene visualizzato solo nel modello dell'applicazione. Questo, combinato con il modo corretto di assegnare 'content' di controller, mi ha portato a scrivere una nuova risposta – adivis
Perché entrambi i modelli hanno il nome 'index', cioè il valore di attributo' data-template-name' 'index'? – Ygg