在 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');
}
我的主干路由器中的以下代码:
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 方法中的日志语句将记录 undefined 几次,然后记录正确的页面,即使在管理时也是如此,但是 Meteor 似乎无论如何都不会重新加载选定的页面,并且模板仍然会命中最后一个 else 语句。