"¡No hay proveedor para AuthGuard!" Usando CanActivate en Angular 2

EDITAR: Obviamente, esto está desactualizado, ahora proporciona su guardia en elproviders matriz en un NgModule. Mire otras respuestas o documentación oficial para más información.

el arranque en un componente está desactualizadoprovideRouter() está desactualizado también

Estoy tratando de configurar la autenticación en mi proyecto, usando un inicio de sesión y AuthGuard de la guía Angular2:https://angular.io/docs/ts/latest/guide/router.html

Estoy usando la versión: "@ angular / router": "3.0.0-beta.1".

Trataré de explicar todo lo que pueda, no dude en decirme si necesita más detalles.

Yo tengo mimain.ts archivo que reinicia la aplicación con el siguiente código:

bootstrap(MasterComponent, [
    APP_ROUTER_PROVIDERS,
    MenuService
])
.catch(err => console.error(err));

Cargo el MasterComponent, que carga un encabezado que contiene botones que me permiten navegar por mi aplicación y también contiene mi principal por ahora.

Estoy siguiendo la guía para hacer que mi aplicación funcione de la misma manera, con lo siguienteapp.routes.ts :

export const routes: RouterConfig = [
    ...LoginRoutes,
    ...MasterRoutes
];

export const APP_ROUTER_PROVIDERS = [
    provideRouter(routes),
    AUTH_PROVIDERS
];

Y ellogin.routes.ts de la guía, que define mi AuthGuard:

export const LoginRoutes = [
    { path: 'login', component: LoginComponent }
];

export const AUTH_PROVIDERS = [AuthGuard, AuthService];

mi componente Master tiene su propia definición de ruta, que también contiene la protección que estoy tratando de configurar.master.routes.ts :

export const MasterRoutes : RouterConfig = [
    { path: '', redirectTo: '/accueil', pathMatch: 'full' },

    {
        path: 'accueil',
        component: AccueilComponent
    },

    { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] },
];

Y estoy usando los mismos archivos que la guía, que sonauth.guard.ts, auth.service.ts, login.component.ts ylogin.routes.ts.

En miheader.component.ts archivo, cuando intento acceder a cualquier ruta, funciona bien, pero cuando intento acceder a la ruta protegida (/ tablero), obtengo elNo hay proveedor para AuthGuard! error.

Vi la publicación reciente con el mismo problema que la mía (NoProviderError usando CanActivate en Angular 2), pero para mí el guardia está bien cargado hasta elmain.ts archivo, por lo que mi enrutador debe saber qué rutas se deben proporcionar con AuthGuard ¿verdad?

Cualquier ayuda o consejo sería muy apreciado. Gracias !

Respuestas a la pregunta(11)

Su respuesta a la pregunta