2016-03-30 21 views
0

Ben aşağıdaki kodla omurga içerisine bir öğeye bir görünüm eklemek çalışıyorum:Omurgalı görünüm oluşturulup oluşturulmadığını nasıl kontrol edebilirim?

var viewContainer = this.$el.find('.view-container'), 
    pageWrap = this.$el.nextAll(); 

FIX (viewContainer.empty()) {

eğer
this.myView= new ProductsView(); 
    viewContainer.append(application.myView.render().$el), 
    console.log(myView); 
} 

Ben appendin toggle işleviyle viewContainer görünümüne g görünüm, ancak, düğmeyi her tıklattığımda, myView yeniden ve tekrar bir kez yerine viewContainer eklenir. Görünümü eklemeden önce içinde görüntülenmiş olup olmadığını nasıl kontrol edebilirim? Kullanabileceğim !this.rendered() eşdeğeri var mı?

Bu thread buldum, ancak bu durumda bana yardımcı olmuyor.

GÜNCELLEME - console.log DAN (viewContainer) O görünüyor

[div.view-container.product-container.active, div#subjects_menu.view-container.product-container.hidden.active, prevObject: p.fn.p.init[1], context: undefined, selector: ".view-container"]

+0

Olası çoğaltılabilir [Bir Backbone.View şu anda DOM'da işlenip işlenmediğini nasıl kontrol edebilirim?] (Http://stackoverflow.com/questions/12332373/how-can-i-check-if-a-backbone- view-is-şu anda-render-in-dom) – AKS

+0

Muhtemelen ama bu ekleme ekleyerek önce this.rendered = true; 'bana nasıl erişileceğini hala söylemiyor. – HGB

+0

"viewContainer" ın viewContainer.length yerine herhangi bir çocuğu olup olmadığını kontrol etmek istediğinizi düşünüyorum. Eğer koşulu içinde 'viewContainer.is (: boş)' kullanarak bunu yapabilirsiniz. – AKS

cevap

0

, emin olmak için ProductsView oluşturulmadı ben f zaten var. Bunu yapmak için

En basit şekilde olacaktır:

if(!this.myView) { 
    this.myView= new ProductsView(); 
    viewContainer.append(application.myView.render().$el), 
} 

DOM sorgulama daha uygulama durumuna çalışmak daha iyidir. Ürün görünümünü kaldırdığınızda, daha sonra this.myView = null yapın. Eğer herhangi bir olayı tetiklemez hiçbir kontrole sahip Üzerinde izole bir harici uygulama entegre olduğunda


bir görünüm oluşturulur olmadığını bilmek için DOM sorgulamak isterdim sadece zaman muhtemelen/sağlamak Geri dönüşler vb.

İlgili konular