2014-07-01 17 views
15

मैंने अपने एम्बर.जेएस एप्लिकेशन में पल @2.7.0 को पल @2.1.0 में अपडेट किया है और अब मुझे एक त्रुटि मिल रही है जब पल() में प्रवेश करते समय पल परिभाषित नहीं किया गया है कंसोल या इसे मेरी स्क्रिप्ट में शामिल करें।moment.js पल अपरिभाषित है

दस्तावेज़ों पर मैंने देखा "2.4.0 के बाद से विश्व स्तर पर निर्यात की गई पल ऑब्जेक्ट को बहिष्कृत किया गया है।" जो मुझे लगता है कि यह मुद्दा यहां है लेकिन मुझे यकीन नहीं है कि मैं एम्बर में विश्व स्तर पर कैसे पल सेट कर सकता हूं ताकि वर्तमान में हमारे कोड बेस में पल() के सभी संदर्भ टूटा नहीं जा सके।

मैंने उस लाइन को अपडेट करने का प्रयास किया है जहां हम कर रहे थे ('पल') var moment = requ ('moment') के लिए, लेकिन इसका एक ही परिणाम है। यहां तक ​​कि अगर मैं var moment = ... लाइन के बाद सीधे डीबगर डालता हूं और फिर कंसोल में पल() दर्ज करता हूं, तब भी मुझे लगता है कि वह पल अपरिभाषित है।

+0

यह कुछ और होना चाहिए, कुछ आवश्यकता के साथ विरोधाभासी है? मैंने परीक्षण के लिए पल 2.7.0 के साथ कुछ दिन पहले एक पृष्ठ स्थापित किया था, जिसमें सचमुच केवल '' कंसोल टाइपिंग पल में फ़ंक्शन रेफरी देता है। टाइपिंग पल() से पहले किसी भी त्रुटि को फेंक दिया जा रहा है? शायद यह देखने के लिए नेटवर्क लॉग की जांच करें कि यह लोड हो रहा है ... – Lex

+0

एम्बर का क्या स्वाद आप उपयोग कर रहे हैं? यदि आप ईक या एम्बर-क्ली जैसे निर्माण का उपयोग कर रहे हैं तो आपको वैश्विक नामस्थान में 'पल' सक्षम करने की आवश्यकता है। क्या तुमने ऐसा पहले से किया था? – Grapho

+0

मैंने इस मुद्दे को नोड के लोडर को नीचे ढूंढने के लिए मॉड्यूल की आवश्यकता है, जिस संदर्भ को संदर्भ की आवश्यकता नहीं है। यह संदर्भ को नए संदर्भ {} पर सेट करता है। फिर पल में यह जांचता है कि परिवर्तनीय वैश्विक परिभाषित किया गया है और यदि यह नहीं है (जो मेरे मामले में नहीं है) तो पल "इस" ऑब्जेक्ट पर पल चर सेट करेगा, जो विंडो के बजाए संदर्भ {} पर सेट है । पल में परिणाम परिभाषित किए जा रहे हैं, लेकिन वैश्विक स्तर पर नहीं। कॉल (इस) को कॉल (विंडो) से पल.जेएस में अंतिम पंक्ति को बदलकर अब यह काम करता है। – Efarley

उत्तर

11

आप नए दस्तावेज़ीकरण के Browser अनुभाग चाहते हैं।

तो ...

<script src="moment.js"></script> 
<script> 
    moment().format(); 
</script> 

संपादित

कहा करने के बाद कि, ऐसा लगता है कि यह शायद आप एक ही मुद्दा दे देंगे।

ऐसा लगता है कि Moment.js वैश्विक चर के साथ नामस्थान को गंदे न करने के लिए आपको पैकेज प्रबंधक का उपयोग करने के लिए प्रोत्साहित करने का प्रयास कर रहा है।

CommonJS और AMD पर पढ़ें, और इसे अपने वर्तमान ढेर में आज़माएं और इसे कारक बनाएं।

var moment = require('moment'); 

moment().format(); 

लेकिन आदेश require उपयोग करने के लिए आप लोगों को ऊपर उल्लिखित की तरह एक मॉड्यूल प्रणाली की जरूरत:

आप की तरह कुछ करना चाहिए।

लेकिन

स्पष्ट ठीक Moment.js के अपने संस्करण रोलबैक करने के लिए, जब तक कि आप नई कार्यक्षमता की आवश्यकता नहीं है। एक साधारण समय/दिनांक लाइब्रेरी वास्तव में एक अपडेट पर अपडेट कितना महत्वपूर्ण हो सकता है?

+0

मुझे टाइमज़ोन की आवश्यकता है, हमारे पास 10 बजे ईटी पर भुगतान कटऑफ है और मुझे यह सत्यापित करने की आवश्यकता है कि कटऑफ की तुलना पूर्वी तट पर समय की तुलना में की जाती है, न कि उपयोगकर्ता स्थानीय मशीन।उपयोगकर्ताओं के टाइमज़ोन का परीक्षण करने के लिए सभी तर्कों में जोड़ने के लिए यह काफी गड़बड़ है और फिर पूर्व तट पर जाने के लिए दिनांक/समय समायोजित करें जब मैं केवल क्षण()। Tz ('America/New_York') का उपयोग कर सकता हूं। ऐसा लगता है कि पल में किए गए परिवर्तनों से मुझे तर्क करने के लिए काम की मात्रा से अधिक अपडेट मिलेंगे। [Requent Timezone] का उपयोग करके – Efarley

+0

[http://momentjs.com/timezone/docs/) [RequJS] (http://momentjs.com/timezone/docs/) को लागू करना बहुत मुश्किल नहीं होना चाहिए। लेकिन हाँ, शायद जावास्क्रिप्ट [डेट ऑब्जेक्ट] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) का उपयोग करना आसान होगा यदि आप सीखना नहीं चाहते हैं मॉड्यूल के बारे में। – shennan

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