2017-02-14 13 views
7

के साथ एक दूसरे के लिए एक संकल्प का परिणाम परिणाम मुझे पता है कि मार्ग के लिए कई हल वर्ग कैसे बनाएं, लेकिन मुझे नहीं पता कि एक संकल्प के दूसरे समाधान को कैसे हल किया जाए।कोणीय राउटर

// Example Route 
{ 
    path: 'book/:id', 
    component: BookComponent, 
    resolve: { 
    document: BookResolve, 
    title: BookTitleResolve 
    } 
} 

BookResolve एक किताब वस्तु देता है, आप कैसे BookTitleResolve को उस किताब वस्तु पारित कर सकते हैं?

मेरे पास एक शीर्षक सेवा है जो कुंजी शीर्षक डेटा में दिखती है। मुझे पुस्तक ऑब्जेक्ट से पुस्तक शीर्षक उत्पन्न करने में सक्षम होना चाहिए। यह गतिशील होना चाहिए।

+0

आप उसी तरह एक घटक करता है 2 समाधानकर्ता से 1 का समाधान मूल्य तक पहुँचने की कोशिश की, यानी 'this.route से है। डेटा'? – AngularChef

उत्तर

2

समान घटक चलाने के साथ मिलकर हल हो जाता है लेकिन माता-पिता में हल होने से पहले बच्चों के सामने पूरा हो जाएगा, इसलिए इसे प्राप्त करने का सबसे आसान तरीका पुस्तक को हल करने के उद्देश्य से एक मूल मार्ग बनाना है।

{ 
    path: 'book/:id', 
    resolve: { 
    document: BookResolve 
    }, 
    children: [ { 
    path: '', 
    component: BookComponent, 
    resolve: { 
     title: BookTitleResolve 
    } 
    } ] 
} 

ध्यान दें कि माता-पिता एक घटक से प्रस्तुत नहीं होती और इसलिए कुछ जोड़ा बॉयलरप्लेट के बावजूद मार्ग कार्यात्मक रूप में एक ही काम करना चाहिए बच्चे को एक खाली पथ है।

फिर अपने BookTitleResolve कार्यान्वयन के अंदर, आप माता-पिता मार्ग से प्राप्त कर सकते हैं:

class BookTitleResolve { 
    resolve(route: ActivatedRouteSnapshot) { 
     // Do something with route.parent.data.document 
    } 
} 
संबंधित मुद्दे