2012-02-22 16 views
9

dan Kor Görünüm alın ben DOM bir Kor görünümden bir jQuery nesnesi oluşturmak için biliyorum:jQuery nesnesi

App.myView = Ember.View.extend({ 
    elementId: "my_view", 

    didInsertElement: function(){ 
    console.log(this.$().attr('id')) // outputs 'my_view' 
    } 
}); 


<!-- HTML output --> 

<div id="my_view"> 
    <!-- ... --> 
</div> 

Nasıl tersini yapmakla ilgili. Bir jQuery nesnesi verildiğinde, ilgili Ember View nesnesini nasıl edinebilirim?

function(selector){ 
    $el = $(selector); 
    // ??? 
} 

cevap

28
function getClosestEmberView($el) { 
    var id = $el.closest('.ember-view').attr('id'); 
    if (!id) return; 
    if (Ember.View.views.hasOwnProperty(id)) { 
    return Ember.View.views[id]; 
    } 
} 
+0

nasıl dom öğesinden bir bileşen örneği alma hakkında? - Kimliği olmadığını biliyorum. Bir şekilde belirtmeliyim mi? – shaunc

+1

@shaunc: Yukarıdaki yöntemi bir bileşen üzerinde test ettim. “Bileşen” bir “Görünüm” alt sınıfı olduğundan, * bir kimliğe sahip olmalı ve “Ember.View.views” içinde bulunmalıdır. – theazureshadow

+0

1.13'den itibaren, görünümün görünüm kayıt defterinden yapılması gerekir: 'container.lookup ('- view-kayıt defteri: main') [id]' –

İlgili konular