Angular2 rc.5 和 hashbang

Angular2 rc.5 and hashbang

在之前的 rc.4 版本中设置 hashbang #!看起来像这样

bootstrap(ApplicationComponent, [....
    {provide: LocationStrategy, useClass: HashLocationStrategy},
    {provide: APP_BASE_HREF, useValue: '!'}
]);

现在在 rc.5 中,一切都发生了一点点变化,我很难找到一种方法来拥有包含 #!

的相同地址

Angular 文档对设置路由非常清楚,但是在描述中略过了 hashbang(https://angular.io/docs/ts/latest/guide/router.html) 。像在 rc.5 app.routing.ts

中那样单独设置哈希
export const routing = RouterModule.forRoot(appRoutes, { useHash: true });

但是不确定如何另外定义“!”在 url 在 rc.5

我不确定应该如何应用以及以何种形式应用。也许在 boostrap:... inside @NgModule in app.module 但到目前为止我没有让它工作。请提出建议。

您可以在 app.module.ts 文件中这样做,方法是将其添加到 providers 数组

import {ReflectiveInjector} from '@angular/core';
import { Http, Response, Request, HTTP_PROVIDERS } from '@angular/http';

let injector = ReflectiveInjector.resolveAndCreate(HTTP_PROVIDERS);
let http = injector.get(Http);
let authService = new AuthService(new LocalStorage(), http);

@NgModule({
  imports: [
    BrowserModule,
    FormsModule,
    routing,

  ],
  declarations: [
    AppComponent,
    MyComponent,
  ],
  bootstrap: [
    AppComponent
  ],
  providers: [
    {provide:AuthService,useValue:authService}, // over here
    AdminAuthGuard,
    UserAuthGuard
  ]
})