2012-06-12 16 views
9

के अलावा अन्य कहते हैं कि मेरे पास कई button तत्वों के साथ एक टेम्पलेट है। अगर मैं click ईवेंट के लिए देखना चाहता हूं तो मैं बस {{action}} सहायक का उपयोग करता हूं। लेकिन मैं mouseEnter या mouseLeave जैसी अन्य घटनाओं को पारित करने का एक तरीका नहीं समझ सकता। मैंने Ember.Button का उपयोग करने के लिए सोचा होगा और किसी भी तरह से इसे childViews के माध्यम से करें लेकिन ऐसा लगता है कि यह deprecated है।एम्बर.जेएस {{action}} क्लिक

टेम्पलेट

{{#view App.MyView}} 
    <button {{action "btnClicked"}}>button1</button> 
    <button {{action "btnClicked"}}>button2</button> 
{{/view}} 

js

App.MyView = Em.View.extend({ 
    btnClicked: function(e){ 
     alert('btnClicked'); 
    }, 
    btnMouseEnter: function(e){ 
     alert('btnMouseEnter'); // how to call this? 
    } 
});​ 

मैं जानता हूँ कि मैं {{action "btnMouseEnter" on="mouseEnter"}} उपयोग कर सकते हैं लेकिन फिर मैं क्लिक कार्यक्षमता खो देते हैं। क्या मुझे प्रत्येक बटन को अपने Ember.View में लपेटने की ज़रूरत है? यदि हां, तो Ember.Button क्यों बहिष्कृत किया गया था?

संपादित करें:

मुझे लगता है कि आप एक से अधिक घटनाओं में एक ही action

<button {{action "myAction" on="click mouseEnter mouseLeave"}}>button</button> 

को गति प्रदान मैं अपने fork और here में इस व्यवहार को लागू किया है करने में सक्षम हो जाना चाहिए एक jsFiddle यह प्रदर्शन काम कर

है

संपादित करें:

अगर कोई इस कार्यक्षमता में रूचि रखता है, तो चर्चा here पर जा रही है।

उत्तर

9

बहुत अच्छा सवाल IMHO।

एक ही रास्ता मैंने पाया यह एक है: http://jsfiddle.net/Sly7/Zvred/

मुझे लगता है कि यह रैपिंग का एक प्रकार है, तो यकीन नहीं कि यह एक अच्छा जवाब है ...

6

इलिया ...

एंबर टीम ने फैसला किया कि बटन जैसे तत्व पर कई एक्शन हेल्पर्स को सबसे अच्छा अभ्यास नहीं था। उनकी सिफारिश sly7_7 सुझावों जैसे दृश्य का उपयोग करना है। Github पर इस समस्या रिपोर्ट की समीक्षा करें:

https://github.com/emberjs/ember.js/issues/569

+1

लिंक के लिए +1। उन्होंने कितना दयालुता नहीं समझाई कि वे कई क्रिया समर्थनों को लागू नहीं करना चुनते हैं। –

+0

मैंने अपना प्रश्न अपडेट किया। क्या मेरी राय हो सकती है? –

+0

मुझे लगता है कि आपके पास पोस्ट किए गए मुद्दे में उत्तर होंगे;) –

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