mercredi 31 décembre 2014

Nested routes and array

In my app I have the following setup:


Router



this.resource('types');
this.resource('type', {path: 'types/:type_id'})


When a user navigates to types he gets a list with all the different types. When he clicks on a link he navigates to the specific type:page. Here I would like to show an array of products. Each type has an array of products. I tried to get the products doing so:



this.resource('types');
this.resource('type', {path: 'types/:type_id'}, function(){
this.resource('beers', {path: '/products'});
});


Router



model: function(){
return this.store.find('product');
}


but that didn't work. I also tried with the params but that doesn't work.


Templates


Type-template



<h3>{{name}}</h3>
<hr>
{{outlet}}


Product-template



{{#each}}
{{name}}
{{/each}}


But nothing gets loaded in the template. I don't know if this is the way to go. I had some success with removing the nested route and simply loading the two models in the afterModel hook on the typeController, but that doesn't give me access to some other models, linked to the product.


It's very frustrating that some "easy" things, like loading an array of products that belong to a type, is such a hassle.





Aucun commentaire:

Enregistrer un commentaire