有人可以更好地解釋在Ember JS中隱含的指數路線和控制器嗎?Ember JS指數路線
看到這個例子,爲什麼這兩個例子中的行爲不同?
指數路徑明確定義
指數路線暗示
有什麼困惑,我就是爲什麼築巢行爲在第二個例子中工作,但不是第一。
有人可以更好地解釋在Ember JS中隱含的指數路線和控制器嗎?Ember JS指數路線
看到這個例子,爲什麼這兩個例子中的行爲不同?
指數路徑明確定義
指數路線暗示
有什麼困惑,我就是爲什麼築巢行爲在第二個例子中工作,但不是第一。
這是學生/學生航線結構:
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
。所以首先呈現student
在students
插座,因爲student/index
丟失後,它被忽略。最終結果是您期望的模板。
摘要
使用默認的約定。模板將呈現在父代,而不是兄弟,父路線模板。
感謝您的明確解釋。這有幫助!所以索引模板真的是可選的。關於兄弟姐妹的觀點是有道理的。 –