2014-10-16 44 views
0

我有一個應用程序模板,在部分標記中包含一個插座,並且還包含一些其他標記,例如標題,頁腳等。當我插入一個posts路線並使用PostsController 。然後該頁面將被填入帖子模板。但是,當我導航到主路線/時,則#main部分爲空白。如何在emberjs中做這個模板?

<header>My header</header> 

<section id='main'> 
    {{ outlet }} 
</section> 

<footer>My footer</footer> 

我想,當我瀏覽到的帖子來使用插座時,我在家裏的路線顯示的東西,但有一個插座充滿了別的東西(如職位模板)。我試着做一些像加:

{{#if isRoot}} 
    lorem ipsum 
{{/if}} 

,然後加入這個到applicationController

App.ApplicationController = Ember.Controller.extend({ 
    isRoot: true 
}) 

但即使當我瀏覽到posts這仍然是正確的(我的理解是,因爲其他控制器嵌套在應用程序控制器內)。什麼是解決這個問題的慣用方法?

回答

0

索引路由是爲這個確切的問題而創建的。它在您打到端點時不被使用,當您剛剛在該端點時允許您顯示某些內容。

App.IndexRoute = Em.Route.extend({ 
    // you can return a different model, or just use the application's model 
}); 


<script type="text/x-handlebars" data-template-name="index"> 
    I'm only at the root of my app! 
</script> 
+0

我不想使用腳本標記,我只是用車把花括號,但如果我加上'App.IndexRoute = Em.Route.extend({ isRoot:真 });'它仍然不起作用。 – railsuser400 2014-10-16 16:02:52

+0

所以你想要非慣用的方式去做你的方式,而不是灰燼的方式?您可以觀看currentPath屬性,它只在應用程序控制器上定義。你也可以使用計算相等來設置它 – Kingpin2k 2014-10-16 16:56:30