मेरा मतलब कल से मेरी पोस्ट पर आपकी टिप्पणी का उत्तर देने का अर्थ रहा है, इसलिए मुझे खुशी है कि आपने यहां सवाल पूछा था।
मुझे यह कहकर शुरू करना चाहिए कि मैंने एम्बर-रेस्ट को jQuery.ajax पर बहुत पतली परत के रूप में लिखा था। यह बहुत उन्नत नहीं है, और संघों के लिए भी एक अंतर्निहित सुविधा नहीं है। हालांकि, मैं अब एक को जोड़ने पर विचार कर रहा हूं कि इस lib को थोड़ा सा उपयोग मिल रहा है। जैसा कि आप नीचे दिए गए कोड से देखेंगे, इस अवधारणा को संभाला जा सकता है लेकिन lib में बेहतर समझा जाना चाहिए।
संघों को प्रत्येक मूल संसाधन के भीतर संसाधन नियंत्रक का उदाहरण बनाकर संभाला जा सकता है। प्रत्येक विशेष संसाधन नियंत्रक को संसाधनों की एक विशेष श्रृंखला का प्रबंधन करना चाहिए, लेकिन जरूरी नहीं कि किसी विशेष प्रकार के सभी संसाधन।
आपके मामले में, आप बातचीत के लिए टिप्पणियों का प्रबंधन करने के लिए ResourceController का विस्तार कर सकते हैं:
App.ConversationComments = Ember.ResourceController.extend({
resourceType: App.Comment,
// override _resourceUrl() to base the url on the conversation
_resourceUrl: function() {
return this.get("conversation")._resourceUrl() + "/comments";
}
});
फिर आप प्रत्येक बातचीत के लिए ConversationComments का एक उदाहरण कॉन्फ़िगर कर सकते हैं:
App.Conversation = Ember.Resource.extend({
resourceUrl: '/conversations',
resourceName: 'conversation',
resourceProperties: ['prop1', 'prop2']
// init comments
init: function() {
this.set("comments", App.ConversationComments.create({ conversation: this }));
}
});
इतना ही नहीं बल्कि, आप प्रत्येक बातचीत के लिए टिप्पणियों को पुनर्प्राप्त करने की आवश्यकता होगी:
conversation.get("comments").findAll();
यदि आपके पास जेसन में सभी टिप्पणियां हैं, तो आप वैकल्पिक रूप से loadAll() का उपयोग कर सकते हैं। लोड कहां और कब आप कॉल करें() या findAll() आपके ऐप की ज़रूरतों पर निर्भर करता है। जाहिर है, आप सर्वश्रेष्ठ प्रदर्शन के लिए AJAX कॉल की संख्या को कम करना चाहते हैं।
एम्बर-डेटा एम्बर-रेस्ट की तुलना में एक और अधिक महत्वाकांक्षी परियोजना है, और पहले से ही संघों के साथ-साथ लेनदेन जैसे उन्नत सुविधाओं के लिए समर्थन भी है। इसके साथ ही, यह एक बदलती एपीआई के साथ बहुत सक्रिय विकास में है। यदि आप धैर्यवान हैं और कोड में खोदने के इच्छुक हैं, तो मैं अत्यधिक कोशिश कर रहा हूं। जब धूल थोड़ा सा हो जाता है, तो मैं इसके बारे में ब्लॉग करने की भी योजना बनाता हूं।
आपकी विस्तृत प्रतिक्रिया के लिए बहुत बहुत धन्यवाद। मैं यह देखने की कोशिश कर रहा हूं कि एम्बर-डेटा का उपयोग करने के लिए मुझे कितने बदलाव करने की ज़रूरत है। अभी भी सोच। –
मैंने आपके दृष्टिकोण को लागू करना शुरू कर दिया और ऐसा लगता है कि संपादन या jjs का फ़ंक्शन सबमिट करें जो टिप्पणी कहता है।saveResource() अभी भी "/ बातचीत /: conversation_id/टिप्पणियां/आईडी" के बजाय जेसन को "/ टिप्पणियां" पथ पर पुट करने के कारण विफल हो गया है, मैं आपके ब्लॉग पोस्ट में संपादन के लिए सुझाए गए डुप्लिकेट को कैसे बनाऊंगा? –
मेरे प्रश्न को कभी न मानें, मैंने स्वयं "संसाधन: टिप्पणियां" हटा दी हैं और केवल नेस्टेड संसाधन कॉन्फ़िगरेशन को रूट.आरबी –