辅助路由如何在Angular2 RC5 / Router3 RC1中工作?

时间:2016-08-18 11:01:24

标签: angular angular2-routing angular2-router3

关于网上的辅助路线几乎没有任何信息,对RC5 / RC1来说更是如此,我希望SO上的某个人设法让他们上班(他们应该已经修好了,所以我听说过,但那个& #39; s关于它。)

我收到了以下路由声明:

import {
    RouterModule,
    Routes
} from '@angular/router';

import { ContactsComponent } from './contacts.component';
import { NewContactComponent } from './new-contact.component';

const contactsRoutes: Routes = [
    { path: '', component: ContactsComponent },
    { path: 'new', component: NewContactsComponent, outlet: 'form' }
];

export const contactsRouting = RouterModule.forChild(contactsRoutes);

这里是routerLink上的outletContactsComponent

<a [routerLink]="['.', 'form:new']"> 
    <button md-fab class="md-fab">
        <md-icon class="md-24">add</md-icon>
    </button>
</a>
<router-outlet name="form"></router-outlet>

但是,这只会导致错误消息,例如

  

错误:无法匹配任何路线:&#39;联系人/表格%3Anew&#39;

有没有人有Angular2 RC5 / Router3 RC1的工作示例?

2 个答案:

答案 0 :(得分:2)

我终于让这个工作了(使用来源,Luke),现在有一个转折点,但我会继续调查,直到找到完整的解决方案。

鉴于此路由设置

const appRoutes: Routes = [
    { path: '', redirectTo: 'welcome', pathMatch: 'full' },
    { path: 'welcome', component: WelcomeComponent },
    { path: 'employee/:id', component: EmployeeDetailComponent }
    { path: 'chat', component: ChatComponent, outlet: 'aux' }
];

也就是说,根路径中的aux路径(这是我提到的扭曲),我可以写

<a [routerLink]="['/', { outlets: { primary: 'employee/14', aux: 'chat' } }]"

并转换为此路线:

/employee/14(aux:chat)

点击此链接然后实际渲染插座中的组件

import { Component } from '@angular/core';

@Component({
    selector: 'my-app',
    template: '<router-outlet></router-outlet><router-outlet name="aux"></router-outlet>'
})
export class AppComponent {}

可以找到完整的plnkr here

一旦我将其用于子组件,我将更新此答案。

答案 1 :(得分:1)

据我所知,它应该像

<a [routerLink]="[{ outlets: { 'aux': ['/employee/14/chat'] } }]">

另见https://angular.io/docs/ts/latest/api/router/index/RouterLink-directive.html