繁体   English   中英

流星路由

[英]Routing in Meteor

在Meteor中我使用Backbone来为我的应用程序中的不同页面提供路由。 我目前有个人资料和管理页面。 当我进入个人资料页面时,它就会显示出来,但是当我去管理时,Meteor会回到主页面。

作为旁注,如果有人对Meteor中的页面有更好的模式或最佳实践,请随意分享,因为这非常麻烦。

我使用以下模板来决定要显示的页面:

<template name="root">
    {{> navbar}}
    {{#if pageIs "profile"}}
      {{> profile}}
      {{else}}{{#if pageIs "administration"}}
        {{> administration}}
      {{else}}
        {{> main_page}}
      {{/if}}
    {{/if}}
</template>

pageIs方法如下:

Template.root.pageIs = function(page){
    console.log(Session.get('page'));
    return page === Session.get('page');
}

以及我的Backbone路由器中的以下代码:

var ProtonRouter = Backbone.Router.extend({
    routes: {
        "profile": "profile",
        "admin": "administration",
        "administration":"administration"
    },
    profile: function () {
        Session.set('page','profile');
    },
    administration: function (){
        Session.set('page', 'administraion');
    },
    mainPage: function(){
        Session.set('page',null);
    }
});

pageIs方法中的日志语句将多次记录未定义,然后记录正确的页面,即使在管理时也是如此,但Meteor似乎无法重新加载所选页面,模板仍然会触及最后一个else语句。

更新 :Iron路由器已被弃用,转而使用Flow Router。 强烈迹象表明Flow Router将在未来作为核心流星的一部分得到支持

https://github.com/meteorhacks/flow-router

OUTDATED :以前常用的路由器是Iron Router:

https://github.com/EventedMind/iron-router

在其发布时,Iron Router结合了两个最广泛使用的流星路由器( 流星路由器迷你页面 )的作者的努力,并且在流路由器之前是Meteor的事实上的官方路由器。

很多人使用这个路线系统:

https://github.com/tmeasday/meteor-router

这对Meteor来说非常容易使用和制作。

在Meteor的早期,建议使用Backbone进行路由。

路由器安德鲁在他的帖子中指出,已成为最受欢迎的选择: https//github.com/iron-meteor/iron-router

一个更简约的解决方案是流路由器: https//github.com/meteorhacks/flow-router

要做出明智的决定,您可以了解两个路由器的差异

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM