2016-11-13 7 views
0

RC4から2.1.2にアップグレードしています。 ROUTER_DIRECTIVESは廃止されました。だから私のLoginComponentで、今、私は(SystemJS)ルータのすべてのパラメータを角度2.1.2で解決できません

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule], 
    providers: [ AuthGuard, ] 
}) 
export class AppRoutingModule { } 

を持ってapp.routing.module.tsでこの

import {Component,Injectable} from '@angular/core'; 
import {Router,RouterModule} from '@angular/router'; 
import {FormBuilder, Validators, FormGroup, FormsModule} from '@angular/forms'; 
import {AuthService} from './auth.service'; 

@Component({ 
    selector: 'login', 
    templateUrl: 'app/login/auth.login.html', 
    styleUrls: ['app/login/auth.login.css'], 
    providers: [FormBuilder, AuthService, { provide: Router, useClass: RouterModule} ] 
}) 
@Injectable() 
export class LoginComponent { 
    form: FormGroup; 

    constructor(fb: FormBuilder, 
       private authSvc: AuthService, 
       private router: Router 
      ) {....} 

のように見える私が移動しようとしている

[email protected]?main=browser:232 Error: (SystemJS) Can't resolve all parameters for Router: (?, ?, ?, ?, ?, ?, ?, ?).(…) 

を次のようにそれから私はエラーを取得しています{ provide: Router, useClass: RouterModule}をapp.routing.module.tsに追加しましたが、それは役に立ちませんでした。

RC4では、ルートコンポーネントにdirectives: [ROUTER_DIRECTIVES]を使用しています。すべてが処理されます。 RouterModuleを使用してルータをコンパイラで解決するにはどうすればよいですか?

+2

あなたがアプリモジュールのインポートに 'AppRoutingModule'を追加したとすれば、**' {provide:Router、useClass:RouterModule} 'を削除した後で動作するはずです。それ以外にも、より良い助けを得るためにPlunkerを提供してください。 –

+0

'{provide:Router、useClass:RouterModule}'なしで起動し、エラーが発生しました。それから、私はhttp://stackoverflow.com/questions/39015918/cant-resolve-all-parameters-for-router-in-angular-rc-5-wを見て、 '{provide:Router、useClass:RouterModule}それでも助けにはならなかった。ですから、 '{provide:Router、useClass:RouterModule}'を削除することで、まだエラーが出ています。私が逃したかもしれない何か他のものでなければなりませんか? – Shawn

+1

それを指摘してくれてありがとう、私はそれを投票することができます:-)それは解決策ではありません。あなたはそれがデュファスのアイデアであることを理解するために、DIの理解を少し深めておく必要があります。私が言ったように、AppRoutingModuleをappモジュールにインポートすると動作するはずです。あなたは問題を再現するPlunkerを提供できますか? –

答えて

1

Routerを使用して、他のモジュールのRouterModule.forRoot(routes)をAppModuleに、RouterModuleを他のモジュールにインポートするだけです。コンポーネントのプロバイダに入れないでください、AppRoutingModuleも不要です。

関連する問題