Error: (SystemJS) no Puede resolver todos los parámetros para ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?)

Estoy tratando de inyectar ActivatedRoute componente en mi componente para acceder a la ID del objeto que estoy editando (o para averiguar, no hay ID param, el nuevo objeto es creado).

He creado sólo la plantilla para el componente, y cuando me carga la página de inicio (no caso de que la página con el componente quiero usar) me sale el siguiente error:

Error: (SystemJS) no Puede resolver todos los parámetros para ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?).

Este es mi código:

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 {
    }

}

Se basa en el código de ejemplo de AngularJS sitio (Héroes), y yo realmente no llegar a donde está el problema aquí… no puedo importar ActivatedRoute en el Componente, o necesito algo extra para poder importar?

Mi configuración de enrutamiento:

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

donde routes son la colección de rutas, al igual que en angular ejemplo, y AppRoutingModule es importado en la aplicación.el módulo.

¿Usted le Router.forRoot() en el AppModule?
Y no añadir el ActivatedRoute a la @Component.providers
parece ser que, la tengo mal, pensé .los proveedores son necesarios para inyectar parámetros en el constructor

OriginalEl autor 9ilsdx 9rvj 0lo | 2016-11-09

2 respuestas

  1. 25

    Quitar providers: [ActivatedRoute] de @Component() hay ninguna necesidad de ello. RouterModule.forRoot() ya ofrece todo lo que se requiere.

    Sí, supongo que sin querer he creado una especie de ciclo de…

    OriginalEl autor Günter Zöchbauer

  2. 1

    Para extender @günter-zöchbauer la respuesta. Asegúrese de que usted agrega RouterModule a la propiedad exports de @NgModule. Directivas/tubos/los módulos especificados en exports será

    utilizado dentro de la plantilla de cualquier componente que es parte de un Angular
    módulo
    que las importaciones de este módulo Angular.

    es decir, en todos los componentes del módulo.

    OriginalEl autor svonidze

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *