2013-02-21 15 views
10

Bu commit tarihinden itibaren iki kez bir kimliğe sahip bir görünüm kaydedemiyoruz. Bu mantıklı görünüyor. Ancak bir sorunum var.Kullanılmakta olan bir kimliğe sahip bir görünümü kaydetmeye çalışıldı

Yönlendirici

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

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

Görünüm

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

Ben rota App.ContactShowRoute zaten olduğumu düşünün. geçişiTo() aynı yoldan ancak farklı bir bağlamla yapmak istiyorum.

Ben görünümü yok etmek ve yeniden oluşturmak için emberjs beklenen ama şu hata var: Ben iki kez aynı kimliğe sahip bir görünüm örneğini istemiyoruz

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

. Sadece gerçek olanı yok etmek ve sonra yeni bir tane yaratmak için ember istiyorum.

+0

Ben Kor eski Görünüm DOM hala ve hala Ember kayıt olurken yeni görünümü, örneğini trys sanırım. Artık yeni yeni Görünümünüz oluşturulur ve elementId atanır. Şu anda aynı kimliğe sahip 2 View nesnesi var, ancak DOM'da yalnızca bir tane var. Neden elementId'yi tanımlamanız gerekiyor? Bence hızlı bir çözüm var. – mavilein

cevap

3

Geçerli sürümde bir hata gibi görünüyor. Belki bir bilet açmalısın. Bu zamana kadar bu yardımcı olabilir, sabittir:

App.ContactShowRoute = Ember.Route.extend({ 

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

lastRenderedTemplate nedir? API'nın bir parçası mı? – testndtv

İlgili konular