हम AngularJS को & lt; इनपुट प्रकार = 'संख्या' / & gt; मान।
हमने स्थानीयकरण फ़ाइल (जैसे
angular-locale_it-it.js ) को शामिल किया है, लेकिन अंग्रेजी लोकेल का उपयोग करके मान अभी भी प्रदर्शित किए जाते हैं।
< P> यह एक समस्या है क्योंकि हमारे बैक-एंड (और प्रबंधन) को उपयोगकर्ता के लोकेल में संख्यात्मक मान होने की उम्मीद है, और
123.45 के बजाय
123.45 प्राप्त करने में त्रुटि होती है ।
आप एक उदाहरण पा सकते हैं।
यह क्रोम में काम करता है
लेकिन यह फ़ायरफ़ॉक्स 21 और इंटरनेट एक्सप्लोरर 10 में काम नहीं कर रहा है।
< P> यह आपके द्वारा अपेक्षित उत्तर नहीं हो सकता है, लेकिन हो सकता है कि यह आपकी सहायता करता है: जेएसबीन:
एक निर्देश का उपयोग करके आप कर सकते हैं इनपुट का डेटा लें, इसे पार्स करें और फिर इसे $ scope चर में डाल दें। कृपया देखें: ( $ पार्सर और $ फ़ॉर्मेटर्स मैंने इसे से लिया है:)।
निर्देश एक अल्पविराम के लिए खोज सकता है और उसे डॉट के साथ बदल सकता है। यह इस तरह दिख सकता है:
कोणीय। मॉड्यूल ('MyModule')। निर्देश ('संख्याइनपुट', फ़ंक्शन () {वापसी {प्रतिबंधित: 'ए', आवश्यकता: 'एनजीएमोडेल', लिंक : फ़ंक्शन (स्कोप, एलीमेंट, एटर्स, एनजीएमडेल कंट्रोलर) {एनजी मॉोडेल कंट्रोलर। पेडर। पीश (फ़ंक्शन (डेटा) {// फॉर्मैट फॉर्मेट से मॉडल फॉर्मेट रिटर्न डेटा में डेटा कन्वर्ट। (',', '।'); // कनवर्ट किया हुआ}}; ngModelController। $ Formatters.push (फ़ंक्शन (डेटा) {// प्रारूप रिटर्न डेटा देखने के लिए मॉडल प्रारूप से डेटा कन्वर्ट। ('।', ','); // परिवर्तित}); // http: //docs.angularjs.org/api/ng.directive:ngModel.NgModelController}}}}); इनपुट फ़ील्ड:
& lt; input ng-model = 'value' type = 'text' numberinput = '' / & gt; यह भी ध्यान रखें कि इनपुट अब एक टेक्स्ट फ़ील्ड है। इस पर एक नज़र डालें:
इनपुट एक नंबर फ़ील्ड है। लेकिन प्रकार 11,5 और यह आउटपुट ¹ ndfined होगा (ध्यान दें कि मैं जर्मनी में रहता हूं और हम अल्पविराम का उपयोग कर रहे हैं)। तो ब्राउज़र सही संख्या को 'पार्स' नहीं करता है यदि यह डॉट-नोटेशन में नहीं है, भले ही आप अल्पविराम के साथ क्षेत्रों में रहते हों ...
कृपया मुझे सही करें, अगर इसमें कुछ गड़बड़ है ;)
No comments:
Post a Comment