rutas por pasar parametros example enrutamiento angular typescript angular2-routing

angular - por - No se puede vincular a ''routerLink'' ya que no es una propiedad conocida



rutas angular (3)

Agregaré otro caso en el que recibí el mismo error pero solo siendo un tonto. [routerLinkActiveOptions]="{exact: true}" sin agregar routerLinkActive="active" .

Mi código incorrecto fue

<a class="nav-link active" routerLink="/dashboard" [routerLinkActiveOptions]="{exact: true}"> Home </a>

cuando debería haber sido

<a class="nav-link active" routerLink="/dashboard" routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}"> Home </a>

Sin tener routerLinkActive , no puede tener routerLinkActiveOptions .

Recientemente, comencé a jugar con angular 2. Hasta ahora es increíble. Entonces, comencé un proyecto personal de demostración por el bien de aprender usando angular-cli .

Con la configuración básica de enrutamiento, ahora quiero navegar a algunas rutas desde el encabezado, pero dado que mi encabezado es un padre para la router-outlet del router-outlet , recibo este error.

app.component.html

<app-header></app-header> // Trying to navigate from this component <router-outlet></router-outlet> <app-footer></app-footer>

header.component.html

<a [routerLink]="[''/signin'']">Sign in</a>

Ahora entiendo parcialmente, supongo que dado que ese componente es una envoltura alrededor router-outlet , no sería posible acceder al router esta manera. Entonces, ¿existe la posibilidad de acceder a la navegación desde el exterior para un escenario como este?

Me encantaría agregar más información si fuera necesario. Gracias de antemano.

Actualizar

1- My package.json ya tiene la versión estable @angular/router 3.3.1 . 2- En mi módulo de app principal, he importado el routing-module . Por favor ver más abajo.

app.module.ts

import { BrowserModule } from ''@angular/platform-browser''; import { NgModule } from ''@angular/core''; import { FormsModule } from ''@angular/forms''; import { HttpModule } from ''@angular/http''; import { AlertModule } from ''ng2-bootstrap''; import { LayoutModule } from ''./layout/layout.module''; import { UsersModule } from ''./users/users.module''; import { AppRoutingModule } from ''./app-routing.module''; import { AppComponent } from ''./app.component''; import { PageNotFoundComponent } from ''./shared/components/not-found.component''; @NgModule({ declarations: [ AppComponent, PageNotFoundComponent ], imports: [ BrowserModule, FormsModule, HttpModule, AlertModule.forRoot(), LayoutModule, UsersModule, AppRoutingModule --> This is the routing module. ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }

app-routing.module.ts

import { NgModule } from ''@angular/core''; import { Routes, RouterModule } from ''@angular/router''; import { SigninComponent } from ''./users/signin/signin.component''; import { PageNotFoundComponent } from ''./shared/components/not-found.component''; const routes: Routes = [ { path: ''**'', component: PageNotFoundComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule {}

La ruta a la que estoy intentando acceder está delegada desde otro module que es el UsersModule

user-routing.module.ts

import { NgModule } from ''@angular/core''; import { RouterModule, Routes } from ''@angular/router''; import { SigninComponent } from ''./signin/signin.component''; const usersRoutes: Routes = [ { path: ''signin'', component: SigninComponent } ]; @NgModule({ imports: [ RouterModule.forChild(usersRoutes) ], exports: [ RouterModule ] }) export class UsersRoutingModule { }

Mientras intento navegar desde un componente que forma parte del módulo de Layout , pero no tiene noción del módulo de enrutador. Es eso lo que está causando el error.

Layout.module.ts

import { NgModule } from ''@angular/core''; import { HeaderComponent } from ''./header/header.component''; import { FooterComponent } from ''./footer/footer.component''; @NgModule({ declarations: [HeaderComponent, FooterComponent], exports: [HeaderComponent, FooterComponent] }) export class LayoutModule{}

Estoy intentando navegar desde HeaderComponent . Estaré encantado de proporcionar más información si es necesario.


Le falta la inclusión del paquete de ruta o la inclusión del módulo de enrutador en su módulo de aplicación principal.

Asegúrese de que su package.config tenga esto:

"@angular/router": "^3.3.1"

Luego, en su app.module, importe el enrutador y configure las rutas:

import { RouterModule } from ''@angular/router''; imports: [ RouterModule.forRoot([ {path: '''', component: DashboardComponent}, {path: ''dashboard'', component: DashboardComponent} ]) ],

Actualización :

Mueva el AppRoutingModule para ser el primero en las importaciones:

imports: [ AppRoutingModule. BrowserModule, FormsModule, HttpModule, AlertModule.forRoot(), // What is this? LayoutModule, UsersModule ],


RouterModule agregar RouterModule a las imports de cada @NgModule() donde los componentes usan cualquier componente o directiva de (en este caso routerLink y <router-outlet> .

declarations: [] es hacer componentes, directivas, tuberías, conocidos dentro del módulo actual.

exports: [] es hacer componentes, directivas, tuberías, disponibles para importar módulos. Lo que se agrega a las declarations solo es privado para el módulo. exports hacen públicas.