2013-11-26 167 views
1

Ember Community Assemble!emberjs - 有條件地在更大的模板中呈現模板

我想有條件地在application.hbs側邊欄內使用{{render''}}小模板,但該側邊欄的內容取決於我們路由到的模型的hbs。例如,「許可」邊欄的內容與「個人資料」邊欄的內容不同。

現在我只能一次渲染所有的側欄內容,而不管選擇什麼model.hbs。

<!-- Right Sidebar in application.hbs START --> 
    <div id="sidebar-wrapper" class="super-super-float-right-col"> 
     <div id="sidebar-wrapper" class="super-float-right-col"> 
     <div id="sidebar-wrapper" class="float-right-col"> 
      {{render 'applicant'}} <!-- only available to '/person/#' --> 
      {{render 'location'}} <!-- only available to '/permit/#' --> 
     </div> 
     </div> 
    </div> 
<!-- Right Sidebar END --> 

    <div class="The rest of the content"> 
     {{outlet}} <!--inserts the rest of the html into the main content container --> 
    </div> 

我不希望這兩個「申請人」和「位置」的,因爲他們都高於同時呈現,而我希望將數據「申請」的內視的編號改變'人'。同樣的關係適用於「位置」的「內部permit.hbs」

VpcYeoman.PermitRoute = Ember.Route.extend({ 
    renderTemplate: function() { 
     this.render({ render:'location'}); 
    } 
}); 

Application_route.js是空白,現在

回答

2

雖然1.2.0介紹{{view}}使用屬性模板名稱的能力,它不適用於{{render}}

那麼你的選擇是使用{{view}}如果可以的話,還是在模板一系列{{#if}},或組件/查看包裹的東西來呈現(單程選擇做這將是有一個模板對於每個渲染以及將templateName屬性綁定到parentController屬性的選擇視圖,以確定哪個應該顯示)

Here是我用來實驗的jsbin。

+0

謝謝,邁克爾! currentSidebar是否暗示我還應該添加一個currentSidebar.hbs文件以在application.hbs中呈現? –

+0

我剛剛檢查過,它是1.2.0,「{{view someProperty}}」已被修復,並且它對** {{{render someProperty}}不起作用** –

+0

作爲替代方案,您會有什麼建議? –