Código-fonte para exemplo
O que aprender aqui?
Ember gera um controlador e uma visão para um recurso que pode ser usado com um roteador personalizado (que nos dá uma maneira de alimentar dados para um modelo)
Que tipo de problema estou tentando resolver?
Tenho uma padaria e quero listar minhas guloseimas.
O Ember tem um corpo docente para gerar controladores e visualizações com base em um recurso e uma rota (uma fonte de dados).
Esta é a configuração básica que o ember espera para usar este padrão.
No meu exemplo – quero visitar o caminho ‘/ # / bakery’ para levar o usuário à minha padaria, que está cheia de guloseimas!
Modelo de aplicativo (precisa de uma saída)
<script type="text/x-handlebars" id='application'>
<h2>Welcome to Shop Land</h2>
{{outlet}}
</script>
Modelo de padaria (precisa de um outlet)
<script type="text/x-handlebars" id="bakery">
At {{#link-to 'goodies' name}}"{{name}}" {{/link-to}}
<br/>
<!-- outlet is where goodies will appear (render) -->
{{outlet}}
</script>
Modelo de guloseimas (renderiza em um outlet)
<script type="text/x-handlebars" id="goodies">
You see the following goodies:
<ul>
{{#each item in model}}
<li>{{item.name}}</li>
{{/each}}
</ul>
</script>
Configure um aplicativo Ember básico
App = Ember.Application.create();
Crie um roteador com o recurso ‘padaria’ no caminho “# / padaria”
Crie um recurso em padaria no caminho # / bakery /: bakery_id
App.Router.map(function() {
this.resource('bakery', {path:'/bakery'}, function() {
this.resource('goodies',{path:':bakery_id'})
})
});
Crie a rota para o recurso (modelo) da padaria
e projete a rota para a transição para o caminho das guloseimas
App.BakeryRoute = Ember.Route.extend({
model: function() {
return {name:'Yummy Land'};
},
afterModel: function() {
this.transitionTo('goodies',this.model().name);
}
});
Crie uma rota para o recurso Goodies (modelo)
App.GoodiesRoute = Ember.Route.extend({
model: function() {
return [{name:'Eclair'},{name:'Donut'},{name:'Oatmeal Cookie'}];
}
});
Essa coleção de código acaba rasgando uma página no url “# / bakery / Yummy Land”
que se parece com isso.
Welcome to Shop Land
At "Yummy Land"
You see the following goodies:
* Eclair
* Donut
* Oatmeal Cookie