javascript - Iron-Router:显示列表和单篇文章的一种路由

标签 javascript meteor iron-router

目前我使用两种路线来显示列表或文章内容。所以我得到了一个路线articles和一个路线article,因为有两个模板。

但是是否有可能将所有内容都放在一条 route ?

我认为第一条路线没有意义,所以应该只有'/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”。

Here is a meteorpad showing this in action.

关于javascript - Iron-Router:显示列表和单篇文章的一种路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32817891/

相关文章:

javascript - 你已经一起安装了 webpack-cli 和 webpack-command

Meteor - 使用本地包在已发布的包上测试应用程序

javascript - 如何删除accounts-ui-bootstrap-3 login_buttons_dropdown : forbidClientAccountCreation中的 "/up"

javascript - 对 Meteor 感到困惑 this.next() 错误 onBeforeAction

javascript - Meteor从路由器获取数据

javascript - 在jsp中访问javascript中的 session 变量

javascript - 下一条语句不执行 - jQuery

javascript - 为什么我们在 2021 年需要 webpack

javascript - meteor 辅助函数、lambda 和词法 this

meteor - flow-routing中iron-routing的 ‘pathFor’函数的替换函数是哪个函数?