2011-09-23 12 views
12

से कक्षा को निर्यात करें यदि मेरे पास एक अलग फ़ाइल में परिभाषित कॉफ़ीस्क्रिप्ट क्लास है जिसे मैं अपनी मुख्य स्क्रिप्ट से कॉल कर रहा हूं। मैं वैश्विक रूप से दिखाई देने वाली फ़ाइल के भीतर कार्य कर सकता हूं, लेकिन कक्षा नहीं।एक कॉफ़ीस्क्रिप्ट फ़ाइल

शामिल फ़ाइल है:

root = exports ? this 

root.add = (a, b) -> 

     return a + b 

class root.userModel 
     username: 'Aaaa' 
     name: 'Bbbb' 

मैं अपने मुख्य कोड से समारोह का उपयोग कर सकते हैं। मैं कक्षा कैसे बना सकता हूं?

+0

मैं यहाँ अपने कोड की कोशिश की और कक्षा तक पहुँचने में कोई समस्या नहीं मिला है से पहले एक '@' के साथ अपने वर्ग को परिभाषित। अगर मैं 'u = new test.userModel()' कहता हूं, तो 'u' में एक ऑब्जेक्ट होगा, जैसा कि अपेक्षित है, और ऑब्जेक्ट 'test.userModel' का एक उदाहरण होगा (परीक्षण के लिए उपयोग की जाने वाली फ़ाइल' test.coffee है 'और इसे 'test = requ' के साथ आयात किया।/test'') – brandizzi

+0

आपकी मदद के लिए धन्यवाद। समस्या कोड – tooba

उत्तर

6

आपका कोड वास्तव में userModel वैश्विक बना देगा, यह मानते हुए कि exports अपरिभाषित है और thiswindow है। यदि आपको समस्याएं आ रही हैं, तो उन स्थितियों की जांच करें।

2

class ... फॉर्म एक अभिव्यक्ति है जो एक मूल्य देता है। तो, आप अपने निर्यात ऑब्जेक्ट पर किसी संपत्ति के class अभिव्यक्ति का परिणाम असाइन करना चाहते हैं। इसलिए जैसा:

root.userModel = class userModel 
    username: 'Aaaa' 
    name: 'Bbbb' 

अद्यतन:

ओह, सच नहीं है, ठीक है या तो class root.userModel के रूप में या root.userModel = class userModel के रूप में काम करना चाहिए।

+0

के मुख्य निकाय में कक्षा तक पहुंचने में समस्या के कारण हुई थी, यह मामला नहीं है, 'class root.userModel' '' 'root.userModel = (function() { फ़ंक्शन उपयोगकर्ता मॉडल() {... } वापसी उपयोगकर्ता मॉडल; })(); '' –

+0

हाँ, आप सही हैं। प्रतिक्रिया पर बहुत जल्दी था। यह किसी भी तरह से ठीक काम करना चाहिए। – timdisney

0

तो बस उसका नाम

class @ClassName 
    blablabla: -> blablalblablabla 
संबंधित मुद्दे