मुझे कुछ एम्बर ऑब्जेक्ट्स स्टोर करने के लिए स्थानीय स्टोरेज का उपयोग करने की आवश्यकता है। मैंने देखा कि एम्बर ऑब्जेक्ट्स में __ember1334992182483
जैसे नाम हैं। जब मैं एम्बर ऑब्जेक्ट्स पर JSON.stringify()
पर कॉल करता हूं, तो इन __ember*
गुणों को क्रमबद्ध नहीं किया जाता है। ऐसा क्यों है? मैं यह नहीं कह रहा हूं कि मैं उन गुणों को क्रमबद्ध करना चाहता हूं। मैं सिर्फ इस बारे में उत्सुक हूं कि वे वास्तव में क्या हैं और उन्हें कैसे कार्यान्वित किया जाता है कि वे क्रमबद्ध नहीं हैं।आप एम्बर ऑब्जेक्ट्स को क्रमबद्ध कैसे करते हैं?
मैं अपने डेटा संरचनाओं को एन्कोड करने के लिए cycle.js (https://github.com/douglascrockford/JSON-js/blob/master/cycle.js) का उपयोग कर रहा हूं जिसमें मूल डेटा संरचनाओं के पुनर्निर्माण के लिए उपयोग की जा सकने वाली स्ट्रिंग में डुप्लिकेट संदर्भ शामिल हैं। यह आप यह कर सकते हैं:
a = {a:1}
b = {b:1}
c = [[a, b], [b, a]]
foo = JSON.stringify(JSON.decycle(c)) // "[[{'a':1},{'b':1}],[{'$ref':'$[0][1]'},{'$ref':'$[0][0]'}]]"
JSON.retrocycle(JSON.parse(foo)) // reconstruct c
एंबर वस्तुओं मैं एक ही बात कर सकते हैं के लिए, लेकिन मैं यह भी है क्योंकि वे सादे JavaScript ऑब्जेक्ट के रूप deserialised रहे Ember.Object.create()
में deserialised वस्तुओं पारित करने के लिए की जरूरत है।
क्या यह एम्बर ऑब्जेक्ट्स को क्रमबद्ध/deserialise करने का सबसे अच्छा तरीका है? क्या इसके लिए एक अनुशंसित तकनीक है?
'__ember क्यों कर रहे हैं *' 'JSON.stringify()' के आउटपुट में गुण नहीं हैं? – hekevintran
मुझे यहां अनुमान लगाना है क्योंकि मैं एक जावास्क्रिप्ट विशेषज्ञ नहीं हूं: लेकिन यदि आप 'एम्बर। ऑब्जेक्ट 'पर' (प्रोप में ओबीजे) {} 'करते हैं, तो' __ember *' सूचीबद्ध नहीं है और ' obj.hasOwnProperty' परिभाषित गुणों के लिए केवल सत्य लौटाता है, http://jsfiddle.net/pangratz666/w53DH/ देखें। – pangratz
'__ember * 'गुण' के लिए ... लूप में सूचीबद्ध नहीं होते हैं। 'App.obj.hasOwnProperty ('__ ember1335029966963') करना '' सत्य' देता है। – hekevintran