2015-01-11 1 views
1

안녕 나는 엠에서 다음 경로가 있습니다엠버 활동 흔적을 잃고

App.Router.map(function(){ 

    this.resource('meat', function() { 
     this.resource('poultry', function() { 
      this.route('chicken'); 
      this.route('duck'); 
     }); 
    }); 
}); 

내 템플릿은 다음과 같이를 :

<script type='text/x-handlebars' id='meat'>  
    <div>{{outlet}}</div> 
</script> 


<script type='text/x-handlebars' id='poultry'> 
     Poultry 
     <br/><br/> 
      {{#link-to 'poultry.chicken'}}Chicken{{/link-to}} 
      {{#link-to 'poultry.duck'}}Duck{{/link-to}} 

     <br/><br/> 
     <div> 
     {{outlet}} 
     </div> 
</script> 

<script type="text/x-handlebars" id="poultry/chicken"> 
    <h4>Chicken</h4> 
</script> 

<script type="text/x-handlebars" id="poultry/duck"> 
    <h4>Duck</h4> 
</script> 

문제는, 나는 '오리'링크를 클릭하면, 나는 '가금류'에 대한 나의 활동적인 흔적을 잃어 버렸다.

경로를 잘못 입력했으나 작동중인 클래스가 없어졌습니다. http://emberjs.jsbin.com/yularepare/2/

감사 : 여기

는 jsbin입니다!

답변

3

의견에있는 코드는 JSBin과 약간 다릅니다. 신청서 템플릿을 포함하지 않았습니다. 여기있다 : 당신이 직선에 'poultry.chicken'하지 'poultry'을 연결하고 있기 때문에 당신은 active 클래스를 잃고

<script type='text/x-handlebars' data-template-name='application'> 
    {{#link-to 'poultry.chicken' }}Poultry{{/link-to}} 

    <br/><br/> 
    <div> 
    {{outlet}} 
    </div> 
</script> 

. 그것은 부모 루트는 아니지만 형제 경로입니다.

{{#link-to 'poultry'}}Poultry{{/link-to}}

그것은 잘 작동합니다 : 활성 클래스를 유지하려는 경우, link-to로 변경합니다. 작업 JSBin : http://jsbin.com/fefucalaqi/1/edit

EDIT : 첫 번째 결과로 리디렉션을 처리하는 방법을 묻는 질문. 여기에 추가.

App.PoultryIndexRoute = Ember.Route.extend({ 
    redirect: function() { 
    // write some code to get to your first result here. 
    this.transitionTo('poultry.chicken'); 
    } 
}); 

이제 모든 가금류 경로의 활성 클래스가 선택되지 않으면 첫 번째 코스가 표시됩니다.

+0

18 초 빠른 :) 내 대답을 삭제합니다. – MrVinz

+0

@MrVinz :) 너무 가까이! – cdmwebs

+0

안녕하세요. 도움을 주셔서 감사합니다. 내가 '치킨'에 직접 연결 한 이유는 사용자가 가금류를 클릭 할 때 첫 번째 항목 ('치킨')을 즉시보고 싶기 때문에 두 번 클릭하지 않고 즉각적인 콘텐츠가 있다는 것입니다. 감사합니다. – user1525612

관련 문제