2013-08-09 5 views
8

मैं उल्का और कॉफ़ीस्क्रिप्ट के लिए नया हूं। मैं अनौपचारिक उल्का अकसर किये गए सवाल में सुझाए गए फ़ाइल लेआउट का उपयोग कर रहा हूं। फ़ाइल संग्रह में/C.coffee, मैंउल्का 0.6.4.1/coffeescript में, परिवर्तनीय दृश्यता कैसे काम करती है?

C = new Meteor.Collection 'C' 
console.log "C: #{C}" 

फ़ाइल सर्वर/main.coffee में है, मैं

C.insert {test: 'test'} 

है जब मैं उल्का शुरू, मैं कंसोल पर देखें:

C: [object Object] 
ReferenceError: C is not defined 
    at app/server/main.coffee.js:5:1 
    at /home/xxx/yyy/.meteor/local/build/server/server.js:298:12 

मैं संग्रह/C.coffee के बाहर फ़ाइलों में सी कैसे उपलब्ध करा सकता हूं?

अद्यतन: @ से सी जोड़ना शीर्ष स्तर पर समस्या को हल करता है। हालांकि यह अभी भी साथ विफल:

Meteor.methods 
     test: (statement) -> 
      @C.insert {test: 'test'} 

यह एक त्रुटि के साथ विफल TypeError: Cannot call method 'insert' of undefined

+0

http://stackoverflow.com/questions/15831144/global-classes-with-meteor-0-6-0-and-coffeescript आप उपयोग करने के लिए @: एक वैश्विक गुंजाइश के रूप में एक ही प्रभाव सी – Suburbio

+0

धन्यवाद, Subrubio। मेरे अद्यतन उदाहरण पर कोई सुझाव? – Jerry

+0

जब आप वैश्विक चर सेट करते हैं तो आपको केवल @/इसका उपयोग करने की आवश्यकता होती है। – Suburbio

उत्तर

13

सी फ़ाइल यह उपयोग @ में परिभाषित किया गया था, जो this. या js में window. को संकलित करता है, जो यह देता है बाहर दृश्यमान बनाने के लिए के सामने

@C = new Meteor.Collection 'C' 
+0

धन्यवाद। मैंने कोशिश की कि एक बार और यह असफल रहा, इसलिए मैंने सोचा कि यह गलत था। यह अब शीर्ष स्तर पर ठीक काम करता है। लेकिन मैं एक meteor.methods कॉल के अंदर सी का उपयोग करने की कोशिश भी कर रहा हूं। खिड़की के लिए एक समतुल्य है। सर्वर की तरफ? – Jerry

+0

सर्वर की तरफ मुझे लगता है कि यह 'this.' करेगा क्योंकि सर्वर – Akshat

+0

पर कोई विंडो नहीं है, कृपया मेरा अद्यतन उदाहरण देखें। @ परीक्षण के अंदर() कुछ अलग करने के लिए अंक। – Jerry

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