2016-11-09 2 views
12

내 구성 요소에 ActivatedRoute 구성 요소를 삽입하여 내가 편집하고있는 객체 (또는 ID 매개 변수가없고, 새로운 객체가 생성되었음을 알 수 있습니다).오류 : (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

그리고'ActivatedRoute'을'@ Component.providers'에 추가하지 마십시오 –

+0

@peeskillet 그것은 틀린 것 같습니다. 나는 .providers가 생성자에 params를 삽입하는 데 필요하다고 생각했습니다. –

답변

18

@Component()에서 providers: [ActivatedRoute]을 제거 할 필요가 없습니다. RouterModule.forRoot()은 이미 필요한 모든 것을 제공합니다.

+1

그래, 제 생각 엔 나는 내키지 않고 일종의 사이클을 만들었습니다 ... –

관련 문제