Tôi đang cố gắng làm theo hướng dẫn này http://onehungrymind.com/named-router-outlets-in-angular-2/ nhưng tôi gặp lỗi.Lỗi: Không thể khớp với bất kỳ tuyến đường nào. Phân đoạn URL:
EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'clients' Error: Cannot match any routes. URL Segment: 'clients'
Đây là tôi Router module
import {NgModule} from "@angular/core";
import {Routes, RouterModule} from "@angular/router";
import {AppComponent} from "./app.component";
import {ClientComponent} from "./clients/client.component";
import {ClientDetailsComponent} from "./clients/client-details/client-details.component";
import {ClientListComponent} from "./clients/client-list/client-list.component";
const routes: Routes = [
{path: '', component: AppComponent},
{path: 'clients', component: ClientComponent, children: [
{path: 'list', component: ClientListComponent, outlet: 'client-list'},
{path: ':id', component: ClientDetailsComponent, outlet: 'client-details'}
]
},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class RoutingModule {
}
App.component
export class AppComponent {
clientsLoaded = false;
constructor(private clientService: ClientService,
private router: Router) {
}
loadClientsComponent() {
this.router.navigate(['/clients', {outlets: {'client-list': ['clients'], 'client-details': ['none'], 'client-accounts-info': ['none']}}]);
this.clientsLoaded = true;
}
}
Client.component
import {Component} from "@angular/core";
import {ClientService} from "../services/client.service";
import {Router} from "@angular/router";
import {Client} from "./client-details/model/client.model";
@Component({
selector: 'clients',
templateUrl: 'app/clients/client.component.html'
})
export class ClientComponent {
clients: Array<Client> = [];
constructor(private clientService: ClientService,
private router: Router) {
}
ngOnInit() {
this.getClients().subscribe((clients) => {
this.clients = clients;
});
}
getClients() {
return this.clientService.getClients();
}
}
gì có thể là sai lầm? một cái gì đó tôi sẽ biết ơn sự giúp đỡ nào
CẬP NHẬT
Cám ơn những lời khuyên, tôi đã cố gắng như thế
const routes: Routes = [
{path: '', component: AppComponent, pathMatch: 'full'},
{path: 'clients', component: ClientComponent, children: [
{path: '', component: ClientComponent},
{path: 'list', component: ClientListComponent, outlet: 'client-list'},
{path: ':id', component: ClientDetailsComponent, outlet: 'client-details'}
]
},
];
Nhưng nó vẫn không hoạt động.
Có lẽ tôi đang làm sai này nhưng tôi có các mẫu sau cho tôi ClientComponent
<div id="sidebar" class="col-sm-3 client-sidebar">
<h2 class="sidebar__header">
Client list
</h2>
<div class="sidebar__list">
<router-outlet name="client-list"></router-outlet>
</div>
</div>
<div id="client-info" class="col-sm-4 client-info">
<div class="client-info__section client-info__section--general">
<router-outlet name="client-details"></router-outlet>
</div>
</div>
Vì vậy, tôi muốn thành phần khách hàng của tôi để giữ tất cả các thành phần khách hàng có liên quan. Và nếu người dùng nhấp vào ví dụ một nút thì danh sách khách hàng sẽ được tải.
Cảm ơn câu trả lời của bạn, nhưng tiếc là điều này cũng không hoạt động. Điều gì khác có thể gây ra vấn đề? – Ptzhub
'/ clients' không phải là tuyến đường hợp lệ. Bạn cần '/ clients/list' hoặc'/clients/someid' hoặc thêm một đường dẫn mặc định 'path: ''' vào con của '/ clients' với một chuyển hướng đến' list' –
Cảm ơn bạn rất nhiều, nhưng điều này vẫn không 't làm việc, tôi chỉ cần cập nhật câu hỏi của tôi, xin vui lòng có một cái nhìn. – Ptzhub