Baru-baru ini, saya sudah mulai bermain dengan sudut 2. Sejauh ini sangat bagus. Jadi, saya sudah memulai proyek pribadi demo untuk keperluan belajar menggunakan angular-cli.
Dengan pengaturan perutean dasar, saya sekarang ingin menavigasi ke beberapa rute dari tajuk, tetapi karena tajuk saya adalah induk dari router-outlet, saya menerima kesalahan ini.
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>
Sekarang saya mengerti sebagian saya kira karena komponen itu adalah pembungkus di router-outletsekitarnya tidak akan mungkin cara ini untuk mengakses router. Jadi, apakah ada kemungkinan untuk mengakses navigasi dari luar untuk skenario seperti ini?
Saya akan sangat senang menambahkan informasi lebih lanjut jika diperlukan. Terima kasih sebelumnya.
Memperbarui
1- Saya package.jsonsudah memiliki @angular/router 3.3.1versi stabil . 2 - Dalam appmodul utama saya , saya telah mengimpor routing-module. Silahkan lihat di bawah ini.
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 {}
Rute yang saya coba akses didelegasikan dari yang lain moduleyaituUsersModule
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 { }
Sementara saya mencoba menavigasi dari komponen yang merupakan bagian dari Layoutmodul, tetapi tidak memiliki gagasan tentang modul router. Apakah itu yang menyebabkan kesalahan.
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{}
Saya mencoba menavigasi dari menu HeaderComponent. Saya akan dengan senang hati memberikan lebih banyak informasi jika diperlukan.
RouterModuleke imports: []semua modul tempat Anda menggunakan routerLinkatau<router-outlet>
AppRoutingModulesebelumLayoutModule