2015-08-29 92 views
0

{{outlet}}秒的灰燼模板結構,組織布局的方式一般是這樣的:如何獲得靈活Ember.js父佈局

resource.hbs 
    - index.hbs 
    - child.hbs 

換句話說,如果我想使用{{outlet}}要從子路由中呈現模板,我還必須在位於頂層資源路由時位於插座中的子路由爲index

例子:

<section id="layout"> 
    Some layout content 
</section> 

{{outlet}} 

有沒有辦法來呈現在{{outlet}}任何東西,當我在父資源路線是?

我的使用情況是,在上面的例子中我想section#layoutwidth: 100%;,但在孩子的路線時,出口有內容,我想section#layout是寬度的一半。

這可能可以做一些聰明的CSS,但我想我需要綁定一個className到當前的路由名稱,這是可能的。

回答

0

是的,有一種不呈現任何東西的方法:不要使用索引子路由。在現代版本中,索引路線仍然存在(即,您可以在餘暇檢查器中找到它),但沒有模板,則不會呈現任何內容。

+0

我想這是更多的CSS問題。我如何讓父母跨越父母路線中的整個頁面,然後在兒童路線中使用半寬(跨越另一半的孩子)? – mehulkar

+0

應用程序控制器有一個包含當前路由的屬性'currentPath'。我認爲你可以使用這個屬性來將一些CSS類應用到你的容器中。如果你的父路由不是應用路由,你可以使用'needs'(http://guides.emberjs.com/v1.13.0/understanding-ember/dependency-injection-and-service-lookup/)來訪問您的控制器中的'currentPath'屬性 –

+0

您可以使用flexbox,以便當頁面中存在子元素時,它將相應地調整大小。 – locks