2013-08-30 8 views
0

나는 자식에 의해 제어되어야하는 탐색 요소가 있기 때문에 일부 코드를 정리하고 '보기/템플릿 콤보'의 '사이드 바'부분을 리팩터링하려고했습니다. 콘센트에서 렌더링되는 뷰. 이자식보기 내부의 렌더링 경로

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

Other routes render in Sidebar {{outlet}} 

지금 나는 내가 거기에서 렌더링 있는지에 따라 일부 UI 변경을 제어 할부터 사이드 바, 그냥 템플릿하지, 뷰를 만들고 싶어처럼

그것은 현재 보인다.

예를 들어 작동하지 않는 jsbin이 있습니다. 나는 또한 {{render 'sidebar'}}을 시도했지만 그 중 하나가 작동하지 않았다. RC.8 사용.

편집
또 다른 시도 here을.

답변

1

사이드 바 템플릿은 표시되지 않는/테스트 경로를 입력 할 때 애플리케이션 템플릿 (색인 템플릿이 아님)에 렌더링되어야합니다.

그러면 App.TestRoute의 renderTemplate에서 2 개의 콘센트 (사이드 바 및 메인)의 템플릿을 렌더링 할 수 있습니다.

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

이 부분을 참조하십시오. jsbin 예제를 참조하십시오.

도움이되기를 바랍니다.

+0

왜'index' 템플릿 안에 있으면 나타나지 않습니까? – knownasilya

+0

둘 다 형제 경로이기 때문에'index' 또는'test'만이 한 번에 활성화 될 수 있기 때문에 제가 가지고 있다고 생각합니까? – knownasilya

+0

바로. 템플릿이 렌더링되는 계층 구조와 순서를 이해하려면 유용한 [ember-extension] (https://github.com/tildeio/ember-extension)을 찾으십시오. – dierbro

관련 문제