流星:铁路线不到正确的路线

时间:2016-07-26 06:58:49

标签: meteor routes iron

所以我是一个导航栏,我已经在#34; Games"中找到了一个子目录。叫" Cross"所以,/ games / cross。现在,从那个页面,我试图再次从导航栏访问游戏页面,但它的显示/游戏/游戏...我该如何解决这个问题?我有以下......

Router.configure({
    layoutTemplate: 'layoutDefault'
});

Router.route('/', function(){
    this.render('main');
});

Router.route('/contact', {
    template: 'contact'
});

Router.route('/games', {
    template: 'games'
});

Router.route('/games/cross', {
    action: function() {
        if(Roles.userIsInRole(Meteor.user(), ['normal' , 'admins'])) {
            this.render('cross')
        }
        else
            this.render('denied')
    }
});

2 个答案:

答案 0 :(得分:4)

此外,您可以使用辅助函数pathFor,它返回任何路径的URL路径组件。

语法

{{pathFor 'path name'}}

要使用pathFor,您必须在路线中添加name属性。

Router.route('/contact', {
    name: 'content-view'
    template: 'contact'
});

<a href="{{pathFor 'content-view'}}">contact</a>

因此,如果您决定更改路线,则无需手动更新所有链接。

答案 1 :(得分:0)

如果我的理解是正确的,那么当您进入/games/cross页面时,您会使用导航栏尝试导航回/games页面,但您的浏览器位置栏现在会显示/games/games而不只是/games,可能你的路由器什么也没做? (或者找到你为路线找不到的任何东西)

这可能是导航栏链接中的一个问题:您是否尝试在/属性值的开头添加斜杠href,以便链接相对于您的域名,不是当前的页面?

<a href="/games">Games</a>

而不是:

<a href="games">Games</a>