2013-08-27 64 views

回答

8

這是學生/學生航線結構:

students 
----index 
----student 
--------index 

第一種情況

指數路徑明確定義

模板:

<script type="text/x-handlebars" data-template-name="students"> 
    {{ outlet }} 
</script>  

<script type="text/x-handlebars" data-template-name="students/index"> 
    ... omitted ... 
    <div class="well"> 
    Expecting to render student template here: 
    <br /> 
    {{ outlet }} 
    </div> 

</script> 

<script type="text/x-handlebars" data-template-name="student"> 
    <h2>Student</h2> 
    <h3>{{name}}</h3> 
    <h4>{{grade}}</h4> 
    <h4>{{gpa}}</h4> 
</script> 

當您轉換爲student.index時,首先附加了student模板和student/index。因爲您沒有覆蓋默認約定,請通過renderTemplate。模板呈現的地方是父路線模板的主要出口(沒有名稱的出口){{outlet}}。所以student模板將被插入students主要插座。不是students/index,因爲它是兄弟姐妹。這就是所有內容被替換的原因。而student/index將在student

第二種情況被插入

指數路線暗示

模板:

<script type="text/x-handlebars" data-template-name="students"> 
    ... omitted ... 
    <div class="well"> 
    Expecting to render student template here: 
    <br /> 
    {{ outlet }} 
    </div> 

</script> 

<script type="text/x-handlebars" data-template-name="student"> 
    <h2>Student</h2> 
    <h3>{{name}}</h3> 
    <h4>{{grade}}</h4> 
    <h4>{{gpa}}</h4> 
</script> 

這一次,像以前的樣本,分辨率的模板不會改變。但是這次我們沒有student/index。所以首先呈現studentstudents插座,因爲student/index丟失後,它被忽略。最終結果是您期望的模板。

摘要

使用默認的約定。模板將呈現在父代,而不是兄弟,父路線模板。

+0

感謝您的明確解釋。這有幫助!所以索引模板真的是可選的。關於兄弟姐妹的觀點是有道理的。 –