Jest to struktura studentów/trasa uczeń:
students
----index
----student
--------index
Pierwszy przypadek
trasa Index wyraźnie zdefiniowane
szablony:
<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>
Po przejściu na student.index
najpierw dołączany jest szablon student
i po student/index
. Ponieważ nie zastąpiłeś domyślnych konwencji, przez renderTemplate
. Miejsce, w którym szablon jest renderowany, znajduje się w głównym gniazdku (gniazdku bez nazwy) o nazwie {{outlet}}
, szablonu trasy nadrzędnej. Szablon student
zostanie wstawiony do głównego gniazdka . Nie students/index
, ponieważ jest to rodzeństwo. To jest powód, dla którego wszystkie twoje treści są zastępowane. A student/index
zostanie wstawiony w student
drugim przypadku
Trasa indeksu domniemanych
szablony:
<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>
Tym razem, podobnie jak w poprzednim przykładzie, rozdzielczość szablonów się nie zmienia. Ale tym razem nie mamy student/index
. Tak więc po raz pierwszy jest renderowany wylot student
w , ponieważ brak jest student/index
, jest on ignorowany. Ostatecznym rezultatem jest szablon, którego oczekujesz.
Podsumowanie
Korzystanie konwencje domyślne. Szablony będą renderowane w szablonie macierzystym, a nie w rodzime.
Dzięki za jasne wyjaśnienie. To pomaga! Zatem szablon indeksu jest naprawdę opcjonalny. I punkt o rodzeństwie ma sens. –