Маршруты Ember JS Index

Может кто-нибудь лучше объяснить, что происходит с подразумеваемым указателем маршрута и контроллеров в Ember JS?

См. этот пример, почему поведение по-разному в этих двух примерах?

Указанный маршрут явно определен

http://jsbin.com/ILAP/1/

Указывается маршрут указателя

http://jsbin.com/ILAP/2/

Что меня смущает, почему поведение вложенности работает во втором примере, но не в первом.

Ответ 1

Это структура маршрута студентов/студентов:

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. Место, где отображается шаблон, находится в основной розетке (выход без имени) aka {{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, он игнорируется. Конечным результатом является шаблон, который вы ожидаете.

Резюме

Использование условных условных обозначений. Шаблоны будут отображаться в родительском, а не в браке, родительском шаблоне маршрута.