2012-11-17 21 views
11

मैं इस टेम्पलेटएक पैकेज के अंदर उल्का में शरीर में टेम्पलेट जोड़ने कैसे

{{> sample}} 

यह काम करता है। मैंने टेम्पलेट.sample() को कॉल करने के लिए भी परीक्षण किया है; ब्राउज़र कंसोल के अंदर और यह काम करता है।

जब मैं इसे अपने पैकेज के अंदर ले जाता हूं (यानी मेरे पैकेज फ़ोल्डर के अंदर एक sample.html फ़ाइल) टेम्पलेट गायब लगता है: मुझे Template.sample() is not a function मिलता है जब भी मैं फ़ंक्शन को कॉल करता हूं और मैं इसे आंशिक रूप से प्रस्तुत करने में भी सक्षम नहीं हूं।

मैं इस कोड के साथ एक package.js है (और स्पष्ट रूप से पैकेज को सही ढंग से मेरे ऐप के अंदर packages फ़ाइल के माध्यम से .meteor में लोड किया जाता है):

Package.on_use(function (api) { 
    api.add_files(['sample.html', 'sample.js'], 'client'); 
}); 

क्यों यह काम नहीं करता? मैं अपने पैकेज से शरीर में एक (प्रतिक्रियाशील) टेम्पलेट कैसे जोड़ सकता हूं?

उत्तर

30

हल हो गया! इस लाइन में जोड़ें:

api.use(['templating'], 'client'); 
+1

यहां एक अन्य समस्या यह है कि यदि आपने अपने ऐप का एक बड़ा हिस्सा पैकेज में डालना चुना है, तो आपको लोड ऑर्डर के बारे में सावधान रहना होगा। आपको किसी भी संबंधित जेएस/कॉफी फाइलों से पहले टेम्पलेट्स को लोड करना होगा या आपको "टेम्पलेट मौजूद नहीं है" टाइप त्रुटि मिलेगी। – dcsan

+4

आपको अपना जवाब स्वीकार करना चाहिए, इसलिए सवाल "हल" के रूप में दिखाई देता है और बेहतर रैंक किया जाता है :) – MattiSG

12

यह भी पहले js

api.add_files("client/sampleTemplate.html", "client"); 
api.add_files("client/sampleTemplate.js", "client"); 
+0

सही, इसलिए टेम्पलेट जेएस फ़ाइल में HTML में परिभाषित टेम्पलेट तक पहुंच है। –

1

html फ़ाइल शामिल करने के लिए महत्वपूर्ण है पैकेज की फ़ाइल packages.js में शामिल करें

से पहले

api.use('meteor-platform'); 
api.use('ui');` 

के बाद पहले ".html" फ़ाइलें, af ter ".js" फ़ाइलें

api.addFiles('filename.html','client'); 
api.addFiles('filename.js','client');`