2013-06-24 2 views
3

모델 데이터를 기반으로 내 앱의 탐색을 동적으로 구축하려고합니다. 당신으로Ember.js보기/응용 프로그램 템플릿에 모델을 전달하는 방법은 무엇입니까?

<ul class="nav"> 
    {{#each contentTypes}} 
    <li><a href="#">{{name}}</a></li> 
    {{/each}} 
</ul> 

:

<div class="container"> 
    <h1>My App</h1> 
    {{view App.NavView}} 
</div> 

여기 App.NavView입니다 :

App.NavView = Ember.View.extend({ 
    templateName: 'nav' 
}); 

그리고 nav 템플릿 내 application 템플릿에서

, 나는 탐색 뷰를 포함하고있어 볼 수 있습니다,를 통해 반복하고 싶습니다.및 각각 name을 표시하십시오.

App.ContentType.find() 

하지만 어디이 호출을 배치해야합니까 내 NavView/nav 템플릿은 모델의 배열에 액세스 할 수 있도록 이러한 엠버 데이터 모델을 얻는 것은 간단하다? NavView을 신고해야합니까? 아니면 응용 프로그램 템플릿에서 사용할 수있게합니까? 방법?

도움 주셔서 감사합니다.

답변

1

{{render}}helper을 사용하면됩니다. 해당 컨트롤러가 컨텍스트와 함께 모델을 제공하거나 전달할 기본값을 사용할 수 있습니다.

{{render}}{{outlet}}과 유사하지만 컨텍스트를 제공합니다.

에 마크 업 변경,

<div class="container"> 
<h1>My App</h1> 
{{render 'contentTypes'}} 
</div> 

그리고 나는 여기에 해당 contentTypes 템플릿을

<script type='text/x-handlebars' data-template-name='contentTypes'> 
<ul class="nav"> 
    {{#each contentTypes}} 
    <li><a href="#">{{name}}</a></li> 
    {{/each}} 
</ul> 
</script> 

을 추가 된 ContentTypesController에 하드 코딩 contentTypes와 Jsbin example을합니다. 구현시 모델을 통해 contentTypes가 제공됩니다.

당신은, 당신의 {{#each}} 블록에서 {{#link-to}} 도우미와 대상 콘센트에 렌더링보기로 컨텍스트를 전달할과 같이 할 수
0

:

<script type='text/x-handlebars' data-template-name='contentTypes'> 
<ul class="nav"> 
    {{#each contentTypes}} 
    <li>{{#link-to "routeName" this}}{{name}}{{/link-to}}</li> 
    {{/each}} 
</ul> 
</script> 
관련 문제