Iron-Router:显示列表和单篇文章的一种路由
Iron-Router: One route for showing list and single article
目前我正在使用两种方式来显示列表或文章内容。所以我得到了一条路线 articles
和一条路线 article
因为有两个模板。
但是不是可以把所有的东西放在一个路由里吗?
我觉得第一个路由没有意义,所以应该只有'/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>
这是可能的,但我认为您混淆了关于什么是路线的一些术语。以下代码:
Router.route('/article', {
...
})
Router.route('/article/:_id', {
...
})
定义了两条路由,它们共享相同的基本路径:'/article'。
目前我正在使用两种方式来显示列表或文章内容。所以我得到了一条路线 articles
和一条路线 article
因为有两个模板。
但是不是可以把所有的东西放在一个路由里吗?
我觉得第一个路由没有意义,所以应该只有'/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>
这是可能的,但我认为您混淆了关于什么是路线的一些术语。以下代码:
Router.route('/article', {
...
})
Router.route('/article/:_id', {
...
})
定义了两条路由,它们共享相同的基本路径:'/article'。