2013-08-30 2 views
0

Я пытаюсь очистить часть своего кода и захотел реорганизовать частику боковой панели в комбинацию View/Template, так как есть элементы навигации, которые необходимо контролировать ребенком которые отображаются в розетке.Рендеринг маршрута внутри дочернего вида

В настоящее время выглядит следующим образом

Map (Route/View/Template) 
    Sidebar (partial) - has {{outlet}} 

Other routes render in Sidebar {{outlet}} 

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

Вот jsbin с примером, который не работает. Я также пробовал {{render 'sidebar'}}, но это тоже не сработало. Кстати, с помощью RC.8.

Редактировать
Еще одна попытка here.

ответ

1

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

Затем в renderTemplate из App.TestRoute вы можете отобразить шаблоны в двух выходах (боковой панели и главной).

App.TestRoute = Ember.Route.extend({ 
    renderTemplate: function() { 
    this.render('test'); 
    this.render('test_sidebar',{ 
     into: 'sidebar', 
     outlet: 'sidebar' 
    }); 
    } 
}); 

См. Этот jsbin пример.

Надеюсь, это поможет.

+0

Почему он не отображается, если он находится в шаблоне 'index'? – knownasilya

+0

Я думаю, что я понял, это потому, что только «индекс» или «тест» могут быть активны одновременно, поскольку оба являются сиб-маршрутами? – knownasilya

+0

Точно. Чтобы понять иерархию и порядок, с помощью которых создаются шаблоны, я нахожу полезными [ember-extension] (https://github.com/tildeio/ember-extension). – dierbro

Смежные вопросы