2012-02-22 12 views
9

से एंबर देखें जाओ मुझे पता है कि एक एंबर दृश्य जो डोम में है से एक jQuery वस्तु के निर्माण के लिए:jQuery वस्तु

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> 

कैसे उलटा करने के बारे में। एक jQuery ऑब्जेक्ट को देखते हुए, मैं इसी एम्बर व्यू ऑब्जेक्ट को कैसे प्राप्त करूं।

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

उत्तर

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

कैसे डोम तत्व से एक घटक उदाहरण करने के बारे में? - मुझे पता है कि इसमें कोई आईडी नहीं है। क्या मुझे किसी एक तरह से निर्दिष्ट करना चाहिए? – shaunc

+1

@shaunc: मैंने उपरोक्त विधि को एक घटक पर परीक्षण किया। चूंकि 'घटक' एक 'व्यू' उपclass है, इसलिए * एक आईडी होना चाहिए और 'Ember.View.views' में मौजूद होना चाहिए। – theazureshadow

+0

एम्बर 1.13 के रूप में, व्यू रजिस्ट्री के माध्यम से दृश्य प्राप्त करना आवश्यक है: 'container.lookup ('- view-रजिस्ट्री: मुख्य') [id]' –

संबंधित मुद्दे