Angular2:如何使用router-deprecated with ngModule

时间:2016-08-25 12:32:49

标签: angular module router

我从rc4切换到rc5并将bootstrap切换到模块,main.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { PortmanModule } from './portman.module';

platformBrowserDynamic().bootstrapModule(PortmanModule);

portman.module:

import {NgModule} from "@angular/core";
import {BrowserModule} from "@angular/platform-browser";
import {FormsModule} from "@angular/forms";
import {RootComponent} from "./root.component";

@NgModule({
    imports: [
        BrowserModule,
        FormsModule
    ],
    declarations: [RootComponent],
    bootstrap: [RootComponent]
})
export class PortmanModule {
}

现在,当我加载应用程序时,会产生错误:

原件例外:没有路由器的提供商!

没有ngModule的main.ts,旧的rc4语法有效:

import {bootstrap}    from '@angular/platform-browser-dynamic';
import { disableDeprecatedForms, provideForms } from '@angular/forms';
import {RootComponent} from './root.component'
import {ROUTER_PROVIDERS} from "@angular/router-deprecated";

bootstrap (RootComponent,[
    ROUTER_PROVIDERS,
    disableDeprecatedForms(),
    provideForms()
]).catch((err: any) => console.error(err));

如何提供路由器?

1 个答案:

答案 0 :(得分:0)

我不知道是否可以使用Router-deprecated with NgModule,但无论如何你需要在你的@NgModule导入中导入路由器的引用,如下所示:

<强> app.modules.ts

...
import { appRouting } from './app.routes';

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        HttpModule,
        appRouting, // Routing logic
        LoginModule // Another module
    ],
    ...
})
export class AppModule { }

<强> app.routes.ts

const appRoutes: Routes = [

];

export const appRouting = RouterModule.forRoot(appRoutes);

我最好的猜测是他们还更新了路由器 - 已弃用以与NgModule一起使用,但是你应该检查路由器弃用的文档。 另外,我的app.routes.ts文件是空的,因为我的路由逻辑位于带有LoginModule的login.routes.ts中,所以这是正常的。