В Meteor я использую Backbone, чтобы обеспечить маршрутизацию для разных страниц в моем приложении. В настоящее время у меня есть профиль и страница администрирования. Когда я перехожу на страницу профиля, она появляется так же, как и должно быть, однако, когда я иду в администрацию, Метеор возвращается на главную страницу.
В качестве побочной заметки, если у кого-то есть лучший образец или лучшая практика для страниц в 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 будет регистрировать undefined пару раз, а затем записывать правильную страницу, даже при администрировании, однако Meteor, похоже, не перезагружает выбранную страницу в любом случае, и шаблон все еще попадает в последнее место -statement.