2016-08-14 18 views
10

कोणीय 2 आरसी 5 (आरसी 4 से) के उन्नयन के बाद ऐसा लगता है कि अब मैं अपने घटकों में ActivatedRoute इंजेक्ट नहीं कर सकता।ActivatedRoute के लिए कोई प्रदाता नहीं - कोणीय 2 आरसी 5

मूल छूट: सक्रिय मार्ग के लिए कोई प्रदाता नहीं!

यहाँ कोड के प्रासंगिक टुकड़ा है:

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

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

declare var module: { 
    id: string; 
}; 

@Component({ 
    moduleId: module.id, 
    selector: 'mds-app', 
    templateUrl: 'app.component.html', 
    styleUrls: [ 
     'app.component.css' 
    ], 
    directives: [] 
}) 
export class AppComponent { 

    constructor(private _route: ActivatedRoute) { 
    this._route.params.subscribe(params => console.log(_route)); 
    } 
} 

और यहाँ मेरी app.module.ts है:

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { CommonModule } from '@angular/common'; 
import { Routes, RouterModule } from '@angular/router'; 

import { AppComponent } from './app.component'; 

import { 
    routing, 
    appRoutingProviders 
} from './app.routing'; 

@NgModule({ 
    imports:  [ BrowserModule, CommonModule, RouterModule ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ], 
    providers: [ appRoutingProviders ] 
}) 
export class AppModule { } 

मैं "हीरोज की टूर" उदाहरण की जाँच की और वे बिल्कुल वही चीज़ करते, वहाँ ActivatedRoute के लिए कोई प्रदाता घोषणा नहीं है तो यहां क्या चल रहा है मुझे आश्चर्य है?

उत्तर

20

मैं गिटहब पर कोणीय 2 मुद्दों के माध्यम से ब्राउज़ कर रहा था और उपरोक्त समस्या का समाधान बहुत भाग्य से बाहर पाया (here देखें)।

मैं NgModule में routing जोड़ने के लिए (ऊपर import देखें) imports को, अर्थात

@NgModule({ 
    imports:  [ BrowserModule, CommonModule, RouterModule, routing ], 
    declarations: [ AppComponent ], 
    bootstrap: [ AppComponent ], 
    providers: [ appRoutingProviders ] 
}) 

कोणीय लगता है 2 के त्रुटि संदेश सिर्फ भ्रामक की तुलना में वे पहले से ही किया गया है मिल गया की जरूरत है।

मुझे आशा है कि यह उत्तर किसी के लिए कुछ उपयोग है, मैं पहले से ही अपने बालों को खींचने वाला था।

संपादित करें: लोकप्रिय अनुरोध करके, यहाँ आयातित routing के लिए एक टुकड़ा है (मेरे सिर के ऊपर से, जैसा कि मैंने इस सप्ताह काम बंद कर रहा हूँ, मुझे अगर कोई इसमें कोई समस्या नहीं है टिप्पणी में पता है):

app.routing.ts:

export routes: Routes = [ 
    { path: 'sales', component: SalesComponent } 
]; 

export routing = RouterModule.forRoot(routes); 

और अपने app.module.ts आप इस आयात होता इस प्रकार में:

import { routing } from 'app.routing' 
+1

आयात करने की आवश्यकता है "रूटिंग" के लिए सही आयात क्या है? मुझे यह नहीं लगता है कि – michali

+1

यह निर्यात किया गया 'राउटर मॉड्यूल' है, आप 'आयात' लिख सकते हैं: [राउटर मॉड्यूल .for रूट (मार्ग)] जहां 'मार्ग' मार्ग हैं: मार्ग = [....] ' 'app.routing.ts' से। –

3

यदि आपको यूनिट परीक्षणों में यह त्रुटि मिलती है, तो आपको RouterTestingModule

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