Son zamanlarda, angular 2 ile oynamaya başladım. Şimdiye kadar harika. Bu yüzden, kullanmayı öğrenmek adına kişisel bir demo projesi başlattım angular-cli.
Temel yönlendirme kurulumuyla, şimdi başlıktan bazı yollara gitmek istiyorum, ancak başlığım bir üst öğe olduğundan router-outletbu hatayı alıyorum.
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>
Şimdi kısmen anlıyorum ki, bu bileşen etrafındaki bir sarmalayıcı olduğundan, router-outletbu şekilde erişimin mümkün olmayacağını tahmin ediyorum router. Peki, böyle bir senaryo için dışarıdan navigasyona erişim imkanı var mı?
Gerekirse daha fazla bilgi eklemekten gerçekten mutlu olurum. Şimdiden teşekkür ederim.
Güncelleme
1- Benim package.jsonzaten kararlı @angular/router 3.3.1sürüme sahip. 2- Ana appmodülümde routing-module. Lütfen aşağıya bakın.
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 {}
Erişmeye çalıştığım rota, başka bir moduleyol olanUsersModule
kullanıcı 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 { }
LayoutModülün parçası olan , ancak yönlendirici modülü hakkında hiçbir fikri olmayan bir bileşenden gezinmeye çalışırken . Hataya neden olan bu mu?
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{}
Dan gezinmeye çalışıyorum HeaderComponent. Gerekirse daha fazla bilgi vermekten memnuniyet duyarım.
RouterModuleüzere imports: []kullandığınız tüm modüllerin routerLinkveya<router-outlet>
AppRoutingModuleönce hareket edinLayoutModule