Так что я люблю Метеор, но у меня было несколько проблем с Iron Router. На этот раз кажется, что я не могу заставить Iron Router отобразить шаблон в области доходности. Первоначально все делает отлично, но когда я нажимаю ссылку, чтобы вернуться домой ({{pathFor ...}}, URL-адрес изменяется, но ничего не меняется в представлении. Это очень странно, поскольку я проверил, что он вызывает маршрут, и я явным образом написал и протестировал this.render ('...'), чтобы заставить его отобразить шаблон, который я хочу (это не работает). Кроме того, он корректно отображается после перезагрузки страницы с измененным URL (т. е. он отображает . домашняя страница) Любая помощь будет высоко ценится СпасибоIron Router Not Rendering Template in Выход
Вот router.js (обновлено):.!
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading'
});
//Basic Routes
Router.route('/',function(){
this.render('main');
},{name:"main"});
Router.route('/Board',function(){
this.render('board');
},{name:"board"});
Router.route('/Board/:chat',function(){
this.render('board');
},{name:"board.chat"});
//On before actions
var OnBeforeActions = {
loginRequired: function(){
if(!Meteor.userId()) {
this.render('main');
}else{
this.next();
}
},
mobileOrDesktop: function(){
if(findBootstrapEnvironment() != 'xs'){
this.render('chat',{to:'chat'});
}else{
this.render('chat');
}
this.next();
}
};
Router.onBeforeAction(OnBeforeActions.mobileOrDesktop, {
only: ['board','board.chat']
});
Router.onBeforeAction(OnBeforeActions.loginRequired, {
only: ['board','board.chat']
});
Router.onBeforeAction('loading');
//Bootstrap state helper
function findBootstrapEnvironment() {
var envs = ["xs", "sm", "md", "lg"],
doc = window.document,
temp = doc.createElement("div");
doc.body.appendChild(temp);
for (var i = envs.length - 1; i >= 0; i--) {
var env = envs[i];
temp.className = "hidden-" + env;
if (temp.offsetParent === null) {
doc.body.removeChild(temp);
return env;
}
}
return "";
}
Вот мой макет, где доходность:
<template name="layout">
<!--Desktop-->
<div class="hidden-xs full-height">
{{> navbar}}
{{> notifications}}
{{> yield}}
</div>
<!--Mobile-->
<div class="hidden-sm hidden-md hidden-lg">
{{> notifications}}
{{> yield}}
</div>
</template>
<template name="loading">
Loading...
</template>
Вот файл с другим выходом в нем:
<template name="board">
<!--Desktop-->
<div class="container hidden-xs full-height">
<div class="row" style="height:90%;">
<!--Projects-->
<div class="col-sm-4 full-height">
{{> projects}}
</div>
<!--Chat-->
<div class="col-sm-8 full-height">
{{> yield "chat"}}
</div>
</div>
<div class="row" style="position:absolute;bottom:0px;left:20px;">
{{> footer}}
</div>
</div>
<!--Mobile-->
<div class="hidden-sm hidden-md hidden-lg full-width">
<!--Projects-->
{{> projects}}
</div>
</template>
Спасибо !!!
Прежде всего, ваш код немного устарел. API Iron Router [изменен с версии 1.0] (https://github.com/EventedMind/iron-router/blob/devel/Guide.md). Можете ли вы сначала его обновить и посмотреть, помогает ли это? Во-вторых, чтобы рассказать вам больше, нам, вероятно, понадобится также ввести код 'html'. –
Большое спасибо. Я изменил синтаксис маршрутизации, но ничего другого не произошло. – ggobieski