Angular2 rc3中的HashLocation策略

Angular2 rc3中的HashLocation策略,angular,Angular,我知道这可能是一个老问题,但因为我找不到任何答案,我的问题。我得再发一次。 我使用的是Angular2 rc3,据我所知,我使用的是HashLocationStrategy export const APPLICATION_PROVIDERS = [ ...FORM_PROVIDERS, ...HTTP_PROVIDERS, ...ROUTER_PROVIDERS, { provide: LocationStrategy, useClass: HashLocationStrategy }

我知道这可能是一个老问题,但因为我找不到任何答案,我的问题。我得再发一次。 我使用的是Angular2 rc3,据我所知,我使用的是HashLocationStrategy

export const APPLICATION_PROVIDERS = [
 ...FORM_PROVIDERS,
 ...HTTP_PROVIDERS,
 ...ROUTER_PROVIDERS,
 { provide: LocationStrategy, useClass: HashLocationStrategy }
];
但我运气不好,应用程序仍然提供类似“/app”、“/home”、no“/#/app”或“/#/home”的路由。
有人请告诉我为什么,我可以提供更多的代码,如果必要的。谢谢。

您还必须向

bootstrap(AppComponent, [APPLICATION_PROVIDERS]);
AFAIR当时的
provide
语法如下:

export const APPLICATION_PROVIDERS = [
 ...FORM_PROVIDERS,
 ...HTTP_PROVIDERS,
 ...ROUTER_PROVIDERS,
 provide(LocationStrategy, {useClass: HashLocationStrategy})
];

看起来您没有将
APPLICATION\u PROVIDERS
const添加到
NgModule

首先,您需要将
APPLICATION\u PROVIDERS
导入应用程序的主条目,然后将其添加到
NgModule

例如:

import {APPLICATION_PROVIDERS} from '.......';

@NgModule({
   .....,
   providers: [
     APPLICATION_PROVIDERS
   ]
})
class RootAppModule {}

我使用的是beta rc3版本,所以还没有@NgModule。起初我认为这与我的问题无关,但根据你的答案进行了一些调整后,我终于找到了答案。非常感谢。