2015-09-28 26 views
1

此刻,我使用兩條路線顯示列表或文章內容。所以我得到了一條路線articles和一條路線article,因爲有兩個模板。Iron-Router:顯示列表和單個文章的一條路線

但是不可能把所有東西放在一條路線上嗎?

我認爲第一條路線沒有意義,所以應該只有'/article/:id',如果沒有給定的ID,應該顯示列表。

路線

Router.configure({ 
    layoutTemplate: 'layout', 
}); 
Router.route('/articles', { 
    name: 'articles', 
    yieldTemplates: { 
     'articleList':  { to: 'content' } 
    } 
}); 
Router.route('/article/:_id', { 
    name: 'article', 
    yieldTemplates: { 
     'contentPage':  { to: 'content' } 
    }, 
    onBeforeAction: function() { Session.set('articleID', this.params._id); this.next(); } 
}); 

模板

<template name="layout"> 
    {{ > header}} 
    {{ > yield 'content'}} 
    {{ > footer}} 
</template> 

<template name="articles"> 
    <ul class="list"> 
     {{#each list}} 
      <li><a href="/article/{{_id}}">{{title}}</a></li> 
     {{/each}} 
    </ul> 
</template> 

<template name="article"> 
    <h1 id="element" data-id="{{article._id}}">{{article.title}}</h1> 
    <p>{{article.content}}</p> 
</template> 

回答

0

這是可能的,但我想你混淆了關於什麼是路線的一些術語。以下代碼:

Router.route('/article', { 
    ... 
}) 

Router.route('/article/:_id', { 
    ... 
}) 

定義了兩條路徑,它們共享相同的基本路徑:'/ article'。

Here is a meteorpad showing this in action.