कहें कि मेरे पास Action
ऑब्जेक्ट्स की एक सूची है, जो एम्बर मॉडल से मेल खाती है। प्रत्येक में कुछ गुण (टाइमस्टैम्प) और detail
विशेषता होती है, जो बाद में detail
एस (मनमाने ढंग से गहरी घोंसले) को शामिल कर सकती है। आप विवरणों को नेस्टेड सूचियों के रूप में सोच सकते हैं।एम्बर.जेएस रिकर्सिव नियंत्रक और विचार
मैं एक यूआई लिखना चाहता हूं जो किसी भी Action
ऑब्जेक्ट के लिए detail
के आसान संपादन (मूल्यों की स्वत: पूर्णता, आसान प्रतिलिपि और पेस्ट, तत्वों को पुन: व्यवस्थित करना आदि) की अनुमति देता है।
अभी, मेरी DetailView
टेम्पलेट रिकर्सिवली प्रस्तुत करना होगा अतिरिक्त DetailView
रों:
{{#if view.content.hasChildren}}
{{#each child in view.content.children}}
{{#DetailView contentBinding=child}}
{{/each}}
{{#else}}
{{#EditDetailView contentBinding=view.content.value}}
{{/if}}
इसलिए प्रत्येक DetailsView
विवरण में एक नोड से मेल खाती है पेड़ आपत्ति है।
लेकिन मुझे स्पष्ट नहीं है कि मिश्रण में नियंत्रकों को कैसे जोड़ना है - अतिरिक्त राज्य मुझे स्टोर करने/कार्यान्वित करने की कार्यक्षमता की आवश्यकता है (उदाहरण के लिए, विवरण दृश्य में प्रदर्शन के लिए विस्तार वस्तु से मूल्यों को परिवर्तित करना; डालने/हटाने के लिए ईवेंट को संभालना/पुनर्वितरण तत्व; विवरण पेड़ की संरचना को बदलना) जो न तो मॉडल में और न ही दृश्य में है।
आदर्श रूप से मेरे पास DetailsController
Details
प्रति DetailsView
प्रॉक्सी के रूप में कार्यरत होगा। क्या मैं गतिशील रूप से नियंत्रकों को तुरंत चालू कर सकता हूं और एक दृश्य टेम्पलेट के भीतर अपनी सामग्री सेट कर सकता हूं? नए एम्बर राउटर की मेरी समझ किसी दिए गए मार्ग में नियंत्रकों और दुकानों को सेट करना है; हालांकि, ऐसा प्रतीत नहीं होता है क्योंकि कोई रूटिंग नहीं किया जा रहा है। रिकर्सिव नियंत्रकों/विचारों/मार्गों को संभालने के तरीके के बारे में सभी सुझाव/अंतर्दृष्टि का स्वागत है।
मैं EmberJS Nested Views and Controllers पर एक नज़र लिया है, लेकिन यह है कि मैं सभी Detail
रों के लिए एक एकल ArrayController
है, भले भर Action
रों ... यह या तो नेस्टेड विवरण के वृक्ष संरचना की रक्षा नहीं होता प्रस्ताव रखता है।
मैंने Recursive view in handlebars template not working after upgrading to Ember 0.9.6 पर भी देखा है लेकिन समाधान नियंत्रकों के बारे में कुछ भी नहीं कहता है।
बहुत बढ़िया है, यह मैं वास्तव में क्या देख रहा था है! –
यदि कोई कार्यान्वयन उदाहरण की तलाश में है तो: [jsbin] (http://jsbin.com/ogapux/9/edit) – RyanJM
'नियंत्रण' सहायक को कम किया गया है :(मुझे लगता है कि आपको 'रेंडर' का उपयोग करना होगा 'अब, लेकिन मुझे "अधिकतम कॉल स्टैक आकार पार हो गया" त्रुटियां मिल रही हैं। – cgenco