所以我喜歡流星,但鐵路路由器有幾個問題。這一次,似乎我無法讓Iron Router將模板渲染到屈服區域。最初一切都呈現良好,但是當我點擊一個鏈接回家({{pathFor ...}}時,網址改變了,但沒有任何改變,這是非常奇怪的,因爲我已經檢查到它正在調用路由,而我已經明確地編寫並測試了this.render('...')來試圖強制它呈現我想要的模板(這不起作用),而且一旦頁面重新加載了更改後的URL,就會正確呈現它(即它呈現。主頁)任何幫助將不勝感激感謝鐵路路由器不產生收益率模板
這裏是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 [從版本1.0更改](https://github.com/EventedMind/iron-router/blob/devel/Guide.md)。你可以先更新它,看看它是否有幫助?其次,爲了告訴你更多,我們可能需要爲你提供'html'代碼。 –
非常感謝。我改變了路由語法,但沒有什麼不同。 – ggobieski