2013-02-21 4 views
10

commit 때문에 ID가 두 번인보기를 등록 할 수 없습니다. 이것은 논리적으로 보인다. 그러나 나는 문제가있다.이미 사용중인 ID가있는보기를 등록하려고 시도했습니다.

라우터

App.Router.map(function() { 
    this.resource('contact', { path: '/contacts/:contact_id' }); 
}); 

App.ContactShowRoute = Ember.Route.extend({}); 

보기

App.ContactShowView = Em.View.extend({ 
    elementId: "page-show-contact" 
}); 

내가 경로 App.ContactShowRoute에 이미있어 것을 고려하십시오. transitionTo() 같은 경로이지만 상황이 다릅니다.

내가보기를 파괴하고 다시 만들 emberjs을 예상, 그러나 나는 다음과 같은 오류 있어요 : 나는 두 번 같은 ID와보기를 인스턴스화하지 않으려는

Uncaught Error: assertion failed: Attempted to register a view with an id already in use: page-show-contact 

합니다. 나는 단지 엠버가 실제 하나를 파괴하고 새로운 것을 창조하기를 바랄뿐입니다.

+0

내가 엠버 이전보기는 DOM에 아직도 여전히 엠버 등록 때 새보기를 인스턴스화 할려고 생각한다. 이제 새로운 뷰가 생성되고 elementId가 할당됩니다. 이 순간에 동일한 ID를 가진 2 개의 View 객체가 있지만 하나의 객체 만 DOM에 있습니다. 왜 직접 엘리먼트를 정의해야합니까? 빠른 해결 방법이 있다고 생각합니다. – mavilein

답변

3

현재 버전에서는 버그 인 것 같습니다. 티켓을 열어 봐야 할 것 같아. 이까지 이 도움이 될, 고정 :

App.ContactShowRoute = Ember.Route.extend({ 

    renderTemplate : function(controller, model) { 
    if(this.lastRenderedTemplate == this.routeName) 
     return; 
    return this._super(); 
    } 
}); 
+0

lastRenderedTemplate이란 무엇입니까? 그것은 API의 일부입니까? – testndtv

관련 문제