router.navigate不改变辅助路线
问题描述:
我有用于路由router.navigate不改变辅助路线
export class WetterRoutingService {
private currentUser: User;
private defaultAbm: Abm;
public rerouteToDefaultOnLoad: boolean = false;
constructor (@Inject(UserService) private userService: UserService,
@Inject(UiDataStore) private uiDataStore: UiDataStore, private router: Router) {
// get User Data and relevant data
}
我提出在此服务的功能来路由到某些路线我经常使用(链接动态地改变根据用户的服务和数据)
public routeToAbmAuxMaps(id) {
this.router.navigate([ '/start', DATA_CONSTANTS.some_constant, id, {outlets: { aux: ['maps']}}]);
}
我定义了以下路线:
export const ROUTES: Routes = [
{
path: '',
redirectTo: '**',
pathMatch: 'full'
},
{
path: 'start/:type/:abm',
component: AbmBlock,
canActivate: [UserService],
resolve: {
model: AbmBlockResolver
},
},
// some other routes
{
path: 'maps',
component: MapsDetailBlock,
outlet: 'aux'
},
{
path: '**',
component: AbmBlock,
resolve: {
data: AbmBlockResolver
},
}
];
和我的路由器,网点在app.html
<div class="main-container" id="main-container">
<div class="main-panel">
<router-outlet (activate)="onMainActivate($event)"></router-outlet>
</div>
</div>
<div class="detail-container" id="detail-container">
<div class="detail-panel">
<router-outlet name="aux" (activate)="onDetailActivate($event)"></router-outlet>
</div>
</div>
时,此功能被称为然而,路由器解析为
BaseUrl/#/start/constant/id
我所期待的是
BaseUrl/#/start/constant/id(aux:maps)
这是一个错误,我应该张贴在GitHub上这还是我做错了什么?
角2.4.3 TS 2.1.5
E:格式化
答
您应该将outlets
对象改成这样:(aux
不是数组)
{outlets: { aux: 'maps'}}
我改变了通话到 this.router.navigate(['/ start',DATA_CONSTANTS.abm,abmId,{outlets:{aux:'maps'}}]); 它仍然做同样的事情 – user3548538