samedi 31 janvier 2015

How do you run multiple routes off of one route controller using iron-router?





Background:


I am making a blog using meteor and iron-router. I want to use a single controller for several different "category pages," which filter a list a blog articles in the yield region.


The Problem:


The article list does not get rerendered when the URL changes. I.e. the article list is not reactive. Interestingly, if I navigate back to the home page, the correct article list shows up.


The Question:


How do I make that article list change when I change between different routes on the category route controller?




Some example code:


Please note that the code for this whole project is available here.


Here is my Route Controller:



CategoryController = RouteController.extend({
action: function(){
this.render();
},
template: 'category',
data: function(){
return {category: this.params.category};
}
});

CategoryController.helpers({
articles: function(){
return Articles.find({category: this.params.category});
}
});


And here is the template it is rendering:



<template name='category'>
<div class="container">
<h2>{{category}}:</h2>
<ul>
{{#each articles}}
<li>
{{#linkTo route="article.show"}}
{{title}}
{{/linkTo}}
</li>
{{/each}}
</ul>
</div>
</template>




Resources:






Aucun commentaire:

Enregistrer un commentaire