使用混合路由时如何在角度中使用ActivatedRoute?

时间:2019-05-20 19:26:14

标签: angular-hybrid

我正在尝试使用升级模块从混合应用程序的角度组件的路线(/ item / {id:[^ /] *} /')中获取数据

我尝试过ActivatedRoute来延缓路由器状态,但它一直在抱怨无效的路由配置。

AppModule

const itemState = {
    name: 'item',
    url: '/details/item:{id:[^/]*}/',
    title: 'Item detail',
    component: ItemContainerComponent
};
@NgModule({
    entryComponents: [],
    declarations: [],
    imports: [
        BrowserModule,
        RouterModule.forRoot([]),
        UpgradeModule,
        UIRouterUpgradeModule.forRoot({ states: [itemState] }),
    ],
    providers: [
        { provide: LocationStrategy, useClass: HashLocationStrategy }
    ]
})


ItemContainerComponent

ngOnInit() {
  this.route.params.subscribe(params => {
    console.log(params['id']);
  });
}

无效的路线'':路线必须指定路径或匹配器;区域:任务:Promise.then;值:错误:路由“”的配置无效:路由必须指定路径或匹配器

1 个答案:

答案 0 :(得分:0)

似乎解决方案是使用@ uirouter / core中的transition并执行以下操作。

constructor(private transition: Transition) {}

ngOnInit() {
  this.itemId = this.transition.params().id;
}