Angular 2 RC5 <base href =“...”/>中断路由

时间:2016-08-19 00:56:14

标签: javascript html svg angular

我偶然发现了与<base href="...">问题相关的问题。似乎Angular 2严重依赖于这个标签。但是,标记本身会以不适合我的情况(there's a lot properly described info on this issue on the internet)的方式影响<svg>...</svg>声明。但是当我删除<base href="...">时,应用程序会立即中断。

在潜伏了几天的解决方案之后,我已经找到了让我的应用程序至少以某种方式工作的方法<base href="...">

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    routing
  ],
  declarations: [
    AppComponent,
    HeroesComponent,
    DashboardComponent,
    HeroDetailComponent
  ],
  providers: [
    HeroService, {
      provide: APP_BASE_HREF, // <------------ this guy here saves the day
      useValue: '/'
    }
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule {
}

但是,如果没有<base href="...">,则应用程序在路由方面变得不那么稳定。基本上它打破并抛出异常&#34;达到最大堆栈大小&#34;当我试图从默认路由以外的路由重新加载页面时。

我无法使用plunkr重现问题,但是如果没有<base href="...">我无法让standard angular tutorial工作

以下是

的链接

Original plunkr

Modified plunkr

如果您打开已修改的控制台,则会看到错误。

在互联网上绝对没有关于这个问题的信息,我从未与<base href="...">打交道,而且我对角度2也是新手。那么最好的起点是什么才能解决这个问题?

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

您可以提供

{ provide: APP_BASE_HREF, useValue: '/' }

让路由器覆盖<base href="...">,而SVG仅依赖于<base href="...">

另见https://github.com/angular/angular/issues/8939