2016-11-09 8 views
12

मैं आईडी के उपयोग के लिए मेरे घटक में सक्रिय रूट घटक इंजेक्ट करने की कोशिश कर रहा हूं जिस वस्तु को मैं संपादित कर रहा हूं (या पता लगाने के लिए, कोई आईडी param नहीं है, नई वस्तु बनाई गई है)।त्रुटि: (SystemJS) ActivatedRoute के लिए सभी मानकों को हल नहीं कर सकता: (?,?,?,?,?,?,?,?)

मैं घटक के लिए केवल टेम्पलेट बनाया है, और जब मैं प्रारंभ पृष्ठ (नहीं घटना घटक मैं उपयोग करना चाहते हैं के साथ पेज) मैं निम्नलिखित त्रुटि मिलती लोड:

Error: (SystemJS) Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?).

यह मेरा है कोड:

import { Component, OnInit } from '@angular/core'; 

import { ActivatedRoute} from "@angular/router"; 

@Component({ 
    selector: 'my-edit', 
    templateUrl: './templates/my-edit.htm', 
    providers: [ActivatedRoute] 
}) 

export class MyEditComponent implements OnInit { 

    constructor(private route : ActivatedRoute){ 
     console.log(route.params) 
    } 

    ngOnInit() : void { 
    } 

} 

यह AngularJS साइट (हीरोज) से उदाहरण से कोड पर आधारित है, और मैं वास्तव में जहां समस्या यहाँ है नहीं मिलता है ... मैं घटक में ActivatedRoute आयात नहीं कर सकते, या मैं कुछ चाहिए इसे आयात करने में सक्षम होने के लिए अतिरिक्त?

मेरे रूटिंग कॉन्फ़िगरेशन है:

@NgModule({ 
    imports: [ RouterModule.forRoot(routes) ], 
    exports: [ RouterModule ] 
}) 
export class AppRoutingModule {} 

जहां routes मार्गों में से संग्रह कर रहे हैं, सिर्फ कोणीय उदाहरण की तरह है, और AppRoutingModule app.module में आयात किया जाता है।

+0

क्या आपने 'AppModule' पर' Router.forRoot() 'प्रदान किया था? –

+1

और '@ घटक' प्रोवाइडर ' –

+0

@Eeskillet में' ActivatedRoute' 'को न जोड़ें, ऐसा लगता है कि, मुझे यह गलत लगता है, मैंने सोचा। प्रदाता को कन्स्ट्रक्टर –

उत्तर

18

से providers: [ActivatedRoute] हटाएं इसके लिए कोई आवश्यकता नहीं है। RouterModule.forRoot() पहले से ही आवश्यक सब कुछ प्रदान करता है।

+1

में पैरा इंजेक्ट करने के लिए आवश्यक हैं हाँ, मुझे लगता है मैंने अनिच्छुक रूप से एक प्रकार का चक्र बनाया है ... –

संबंधित मुद्दे