2013-05-20 20 views
7
का उपयोग कर

मानक एंबर mixin उदाहरण हम उदाहरण के तरीकों/गुण जोड़ने में तरीकों को जोड़ सकते हैंमैं (स्थिर) वर्ग EmberJS mixins

UninstantiatedClass.findAll() 

क्या मैं एक मिश्रण बना सकता हूं जो वर्ग विधियों को जोड़ता है?

उत्तर

13

हां आप कर सकते हैं!

बस एक reopenClass मंगलाचरण के दौरान mixin प्रदान करते हैं:

// The mixin itself 
FooMixin = Em.Mixin.create({ 
    ... 
}); 

// Mix in at the instance level 
BarClass = Em.Object.extend(FooMixin, { 
    ... 
}); 

// Mix in at the class level 
BarClass.reopenClass(FooMixin, { 
    ... 
}); 

मैं भी इस समस्या भर में ठोकर खाई है, और इस प्रवचन परियोजना में किया जा रहा की खोज की।

आशा है कि इससे मदद मिलती है!

1

सबसे पहले, मैं अभी भी एम्बरजेएस सीख रहा हूं। :)

मुझे एक ही समस्या थी: कक्षा में सामान्य वर्ग विधियों को कैसे जोड़ना है।

मेरे समझ है कि आप mixins का उपयोग कर यह नहीं कर सकते है (चेतावनी: मैं गलत हो सकता है) लेकिन आप एक सादे उपवर्ग का उपयोग कर ऐसा कर सकते हैं।

इस jsbin पर देखें। ऐप। सॉलिडियर ऐप.पर्सन का उप-वर्ग है जिसमें इंस्टेंस और क्लास विधियां हैं। ये ऐप। सैनिक के लिए उपलब्ध हैं।

आप कंसोल में इन आदेशों टाइप:

x = App.Soldier.create(); 
x.hello(); // => "hello world!" 
x.fire(); // => "Laser gun, pew! pew!" 
App.Soldier.identifyYourself(); // => "I'm a humanoid carbon unit" 

इस दृष्टिकोण की कमियां है कि किसी को स्वतंत्र रूप से एक App.Person वस्तु का दृष्टांत कर सकते हैं। इसके अलावा, आप एकाधिक अभिभावक वर्गों को उपclass नहीं कर सकते हैं।

वैसे भी, मुझे उम्मीद है कि यह

+0

धन्यवाद डेविड। इस बिंदु पर भी मेरी समझ है। मैं इन वर्गों को उत्पन्न करने के लिए एक कारखाने लिखना घायल हो गया। –

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