2013-03-14 5 views
5

각 경로 (및 경로 객체)에 해당하는 템플릿이있는 라우터가 있습니다. 부모와 독립적으로 각 템플릿을 표시 할 수 있기를 원합니다. 즉, 중첩 된 경로를 부모 템플릿의 콘센트에 렌더링하지 않으려는 것입니다. 기본적으로 각 중첩 된 경로에 대해 별도의 "페이지"를 만듭니다.자원 출구를 사용하지 않고 엠베스의 중첩 경로

App.Router.map(function() { 
    this.resource('recipes', function() { 
    this.route('new'); 
    this.route('show', { path: '/:recipe_id' }); 
    }); 
}); 

내가 Ember.js가 중첩 경로를 지원하지 않습니다 ember1.0.0-RC1에게

감사

답변

4

상위 템플릿과 별도로 각 템플릿을 표시하고 싶습니다. 즉, 중첩 된 경로를 상위 템플릿의 콘센트에 렌더링하지 않으려합니다.

분명히 분명하지만 리소스에 대한 템플릿을 만들지 않을 경우 발생합니다. 귀하의 경우에 recipes.hbs 템플릿을 만들지 않으면 new.hbsshow.hbs 템플릿이 {{outlet}}application.hbs으로 렌더링됩니다.

참고 :이 작업을 수행 할 경우, 엠버 출력 콘솔 경고

이이 ember routing guide

+1

응답 해 주셔서 감사합니다. 내가 질문을 한 후에 당신이 잠시 말한 것을 실제로 깨달았습니다. 내가 한 것은 recipes.hbs를 유지했지만 그 안에있는 것은 {{outlet}}뿐이었습니다. 그런 다음 나는 새로운 것과 쇼를 내가 가진 것처럼 정의했다. 내가해야 할 일은 경로 객체와 함께 색인을위한 새로운 템플릿을 만들고 단지 {{#linkTo 'recipes'}} 대신에 {{#linkTo 'recipes.index'}} Recipes {{/ linkTo}}를 사용하는 것입니다. ..{{/다음으로 연결}} – spullen

0

을 사용하고, 단지 중첩 자원을 지원합니다. 궁극적으로 중첩 된 경로에는 경로가 포함될 수 있습니다.

리소스를 사물로 생각하고 동작을 경로로 생각하십시오.

1

에 대한 자세한 내용이 설명되어 있습니다 "즉각적인 부모 경로는 ... 메인 콘센트에 렌더링하지 않았다"것 엠버 가이드의 빠른 노트

this.resource를 사용하여 리소스를 정의하고 함수를 제공하지 않으면 암시적인 resource.index 경로가 생성되지 않습니다. 이 경우/resource은 ResourceRoute, ResourceController 및 resource 템플릿 만 사용합니다.

라우팅 괜찮 당신이 당신의 "레시피"안에 중첩 된 "새"와 "쇼"경로 템플릿 (더 마스터가없는없이 "레시피"에 대한 인덱스를 원하는 경우 @mikegrassotti는 비록 정확/detail) 내부에 콘센트가없는 레서피/색인 템플릿을 만들어야합니다.

<script type="text/x-handlebars" data-template-name="recipes/index"> <ul> {{#each}} <li>{{recipe}}</li> {{/each}} </ul> 

당신은 경로 설정을 변경할 필요가 없습니다

. Mike가 위에 언급 한 것처럼 ember는 new.hbs 및 show.hbs 템플릿을 application.hbs의 {{outlet}}에 렌더링합니다.