2015-06-29 72 views
1

我試圖使用iron:routeryieldTemplates屬性在同一個佈局上呈現多個模板。iron:路由器的yieldTemplates不工作

this tutorial,我們應該abble做這樣的事情:

template.html

<template name="complexLayout"> 
    <div class="left"> 
    {{> yield region="menu"}} 
    </div> 


    <div class="main"> 
    {{> yield}} 
    </div> 
    <div class="bottom"> 
    {{> yield region="footer"}} 
    </div> 
</template> 

route.js

this.route('home', { 
    path: '/', 
    layoutTemplate: 'complexLayout', 
    yieldTemplates: { 
    'myMenu': {to: 'menu'}, 
    'myFooter': {to: 'footer'} 
    } 
}); 

我三編輯做到這一點,但yieldTemplates部分不起作用。

下面是相關代碼:

Router.js

Router.map(function() { 
    this.route('home', { 
     path: '/home', 
     controller: 'homeController' 
    }); 
}); 

Controllers.js

baseController = RouteController.extend({ 
    layoutTemplate: 'baseLayout' 
}); 

homeController = baseController.extend({ 
    yieldTemplates: { 
     'homeNavTop': {to: 'top'} 
    } 
}); 

Templates.html

<template name="baseLayout"> 
    <main> 
     <!-- NAV TOP --> 
     <div id="nav-top" class="hide-on-large-only light-blue darken-3 white-text"> 
      <div class="row nomargin valign-wrapper hide-on-large-only"> 
       {{> yield region='top'}} 
      </div> 
     </div> 
     <!--/NAV TOP --> 

     <!-- BODY --> 
     <div class="row nomargin"> 
      <div class="col s12"> 
       {{> yield}} 
      </div> 
     </div> 
     <!--/BODY --> 
    </main> 
</template> 

<template name="homeNavTop"> 
    <a href="#" data-activates="slide-out" class="menu button-collapse btn-flat waves-effect"> 
     <i class="material-icons">menu</i> 
    </a> 
</template> 

如上所述,BODY部分正常工作。 top區域保持空白。 我根本沒有控制檯錯誤。

你對我的代碼有什麼問題有任何線索嗎?

+1

嘗試刪除'區='例如,只要執行'{{> yield「菜單」}}'。 – Firo

回答

2

也許語法發生了變化,因爲這教程編寫的,但根據IronRouter guide你應該這樣做:

{{> yield 'top'}} 

,而不是這個

{{> yield region='top'}} 
+0

我想這是不贊成或什麼..謝謝 – pistou