2013-04-24 3 views
3

티켓 목록이 있습니다. "티켓"을 발송할 때 목록을 표시합니다. 첫 번째 항목이 자동으로 선택되기를 원합니다. 나는 stackoverflow에 해결책을 찾았지만, 나를 위해 작동하지 않습니다. 코드는 다음과 같습니다.Ember.js 첫 번째 항목 오류로 리디렉션

window.App = Ember.Application.create(); 

App.Router.map(function() { 
    this.resource('tickets', function() { 
     this.resource('ticket', { path: ':ticket_id' }); 
    }); 
    this.resource('feedback'); 
}); 

App.TicketsRoute = Ember.Route.extend({ 
    model: function() { 
     return App.Ticket.find(); 
    }, 
    redirect: function() { 
     var ticket = this.modelFor('tickets').get('firstObject'); 
     this.transitionTo('ticket', ticket); 
    } 
}); 

티켓 경로를 처음 방문하면 첫 번째 항목이 선택됩니다. 그런 다음 다른 길로 가서 티켓으로 돌아갑니다. 그 다음에 다음 오류가 발생합니다.

WARNING: The immediate parent route ('a') did not render into the main outlet and the default 'into' option ('p') may not be expected 

마크 업이 잘못되어 항목 목록이 표시되지 않습니다 (첫 번째 티켓에 대한 세부 정보 만 표시됨). 나는 그 오류를 이해하지 못한다.

미리 감사드립니다.

+0

라우터 코드를 게시 하시겠습니까? –

+0

좋아, 편집 내 게시물 – Victor

답변

1

렌더링 된 템플릿이 부모에서 콘센트를 찾지 못했기 때문에 경고 메시지가 표시됩니다. ticket.hbs 템플릿을 가지고 있지만 tickets.hbs 템플릿이없는 것 같습니다. 이상적으로는 다음과 같아야합니다.

// in tickets.hbs 
{{#each ticket in tickets}} 
    //ticket link 
{{/each}} 
{{outlet}} 

// tickets/index.hbs 
Please select a ticket from the list 

// in ticket.hbs 
// ticket details 

설명을 보려면 https://github.com/emberjs/ember.js/pull/1916#issuecomment-13669980을 참조하십시오.

+1

이 댓글을 주셔서 대단히 감사합니다. 나는 내 앱에서 비슷한 오류 메시지를 찾기 위해 하루 종일 찾고 있었다. 좋은 명확한 대답. –

관련 문제