के आधार पर प्रदर्शित यह कैसे आवश्यक कार्यक्षमता कोणीय 2.Angular2: अलग "टूलबार" घटकों मुख्य नेविगेशन
मेरे आवेदन के साथ "सही" जिस तरह से लागू करने के लिए पर एक conceptional सवाल यह है कि है एक नेविगेशन मेनू, उपकरण पट्टी, और एक सामग्री क्षेत्र। उत्तरार्द्ध में प्राथमिक <router-outlet>
होता है और सूची और विवरण जैसे विभिन्न दृश्य प्रदर्शित करता है।
जो मैं प्राप्त करना चाहता हूं वह यह है कि टूलबार सामग्री क्षेत्र में प्रस्तुत घटक/दृश्य के आधार पर विभिन्न घटकों को प्रदर्शित कर रहा है। उदाहरण के लिए, सूची घटक को टूलबार में एक खोज नियंत्रण की आवश्यकता होती है, जबकि विवरण घटक को एक सेव बटन की आवश्यकता होती है।
ए) मेरा पहला प्रयास टूलबार में एक और (नामित) <router-outlet>
जोड़ने और स्थिर मार्गों के आधार पर टूलबार घटकों को प्रदर्शित करना था। इसके बारे में क्या गलत लगता है:
- स्थिर सामग्री-टूलबार संबंध मेरे स्वाद के लिए बहुत कम है।
- संबंध URL में दृश्यमान (और परिवर्तनीय) है।
- टूलबार आउटलेट इस पथ को तब भी रखता है जब उपयोगकर्ता नेविगेट करता है।
बी) मेरे दूसरे प्रयास (उपकरण पट्टी घटकों के लिए लाजि़मी नेविगेट करने के लिए भी इसे और अधिक मजबूती से मुख्य दृश्य घटक के ngOnInit
, जो जोड़ों में नामित उपकरण पट्टी आउटलेट का उपयोग कर) था। क्या बदबू आती है:
- ए 2
- ए 3,
ngOnDestroy
पर इस मैं कर सकता "स्पष्ट" उपकरण पट्टी के आउटलेट को रोकने के लिए है, लेकिन मैं बाहर कैसे नहीं मिली है।
सी) रूटर एक आखिरी मौका देते हुए के बाद मुझे पता चला कि इस तरह का काम करता है-:
const ROUTES: Routes = [
{path: "buildings", children: [
{path: "", component: BuildingListComponent, pathMatch: "full", outlet: "primary"},
{path: "", component: BuildingListToolbarComponent, pathMatch: "full", outlet: "toolbar"},
{path: ":id", component: BuildingDashboardComponent, outlet: "primary"}
]}
];
विचार यह है कि रूटर आउटलेट प्रति मिलान पथ चुनेंगे । लेकिन (nooo, यह इतना आसान नहीं था सकता है) दुर्भाग्य से, यह काम नहीं करता:
const ROUTES: Routes = [
{path: "buildings", children: [
{path: "list", component: BuildingListComponent, pathMatch: "full", outlet: "primary"},
{path: "list", component: BuildingListToolbarComponent, pathMatch: "full", outlet: "toolbar"},
{path: ":id", component: BuildingDashboardComponent, outlet: "primary"}
]}
];
यह appearently (और शायद accidentially) केवल एक खाली पथ के साथ काम करता है। क्यों ओह क्यों?
डी) एक पूरा अलग रणनीति मेरी घटक पदानुक्रम rework करने के लिए, ताकि हर मुख्य दृश्य घटक एक उपयुक्त उपकरण पट्टी शामिल है, और multi-slot content projection का उपयोग किया जाएगा। यह कोशिश नहीं की है, लेकिन मुझे टूलबार के कई उदाहरणों के साथ समस्याओं में भागने से डर है।
कभी-कभी, यह एक आम उपयोग केस प्रतीत होता है, और मैं सोच रहा हूं कि कैसे कोणीय 2 विशेषज्ञ इसे हल करेंगे। कोई विचार?
तुम बस गतिशील http://stackoverflow.com/questions/36325212/angular-2-dynamic-tabs-with-user में दिखाया गया है जैसे घटकों जोड़ सकता है -क्लिक-चयनित-घटक/36325468 # 36325468 रूट परिवर्तनों के बारे में अधिसूचित होने के लिए राउटर को इंजेक्ट करें और फिर एक मिलान घटक जोड़ें। आप मार्ग स्तर पर कॉन्फ़िगर करने के लिए मार्गों में 'डेटा' भी जोड़ सकते हैं, जिसमें घटक को जोड़ा जाना चाहिए जैसे http://stackoverflow.com/questions/38644314/changing-the-page-title-using-the-angular-2- नया राउटर/38652281 # 38652281 –
धन्यवाद गुंटर, मैं इसे आजमाउंगा। मैंने राउटर कॉन्फ़िगरेशन का एक और संस्करण भी आजमाया, जो वादा करता था (सी), लेकिन कोई भाग्य नहीं। – Zeemee
मैंने आपके सुझाव के आधार पर एक उत्तर पोस्ट किया है। फिर, मुझे सही दिशा में डालने के लिए धन्यवाद। – Zeemee