0

在我的 Angular 4 应用程序中,我的路由有一些问题,可能我错了,目前问题出在这样的路由上path: ':code/copy',我可以正确路由到这个组件,但是当我在里面时,如果我重新加载页面, angular 无法加载 css 文件。

在我的 app.routing 中,我有一条路径:

path: 'ticketBundles',
loadChildren: './ticket-bundles/shared/ticket-bundle.module#TicketBundleModule'`

而ticketBundles的结构是这样的:

票包

所以在我的ticket-bundle.routing 我有:

import {Routes} from '@angular/router';
import {TicketBundleListComponent} from '../ticket-bundle-list/ticket-bundle-list.component';
import {TicketBundleNewComponent} from '../ticket-bundle-new/ticket-bundle-new.component';
import {TicketBundleDetailComponent} from '../ticket-bundle-detail/ticket-bundle-detail.component'

export const TicketBundleRoutes: Routes = [
  {
    path: '',
    component: TicketBundleListComponent
  },
  {
    path: 'new',
    component: TicketBundleNewComponent
  },
  {
    path: ':code',
    component: TicketBundleDetailComponent,
  },
  {
    path: ':code/copy',
    component: TicketBundleNewComponent
  }
];

如果我小时候走这条路,path: ':code/copy' 我怎么能找到它?因为如果我这样做,它就无法匹配任何路线。要在某些组件中路由,在 ticket-bundlelist.component 我做:this.router.navigate(['/ticketBundles', code])

如前所述,目前我只对这条路线有一个问题::code/copy那么我怎样才能更正路由结构以使其正常工作呢?

4

2 回答 2

0

如果我正确理解您的问题,您应该重新排序路线。Angular 从顶部开始匹配路由。

因此,在这种情况下,当您导航到 :code/copy 时,它将从第一个元素开始在 TicketBundleRoutes 中查找它。当它找到:code它时,它会返回该路线而不是进一步寻找。移动:code/copy到路径上方:code,看看它是否有效。

于 2017-10-24T05:23:25.823 回答
0

这完全是我的错,css路径错误,我使用../assets但正确的路径是/assets 但我不明白为什么它在所有页面中都使用不正确的路径,除了这个,现在使用正确的路径效果很好

于 2017-10-28T11:55:44.157 回答