2014-10-16 71 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