2016-08-24 9 views
0

私はDIについて以前に質問を投稿して以来、ここで同じ問題が見つかりました。私はその何かをしているか、私のdevのセットアップを知っていないのですか?角2を注入するとルータが動作しない

私はルータにコンポーネントを注入しようとしています。

:私は実行すると、以下のように私は

Can't resolve all parameters for LoginComponent 

次のエラーを取得するアプリケーションは、私のビルドプロセスがある私含むモジュールは、この

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { Router } from '@angular/router'; 

import { LoginComponent } from './login.component'; 

import { User } from '../user/user'; 

@NgModule({ 
    imports:  [ BrowserModule, FormsModule, Router ], 
    declarations: [ LoginComponent ], 
    bootstrap: [ LoginComponent ] 
}) 

export class LoginModule { } 

のように見え、これは私のコンポーネント

import { Component } from '@angular/core'; 
import { Inject } from '@angular/core'; 
import { Router } from '@angular/router'; 

import { User } from '../user/user'; 

@Component({ 
    templateUrl: './login.template.html' 
}) 

export class LoginComponent { 
    user = new User("", ""); 
    submitted:boolean = false; 
    inProgress:boolean = false; 

    constructor (private router : Router) { 

    } 

} 

です

inline-angular-compilerを実行する(実際のjsファイルにtemplateUrlを埋め込む) tscを実行する(tsからjsに変換する)

タイスクリプトの変換を実行するとDIの問題が発生する可能性があると聞きましたが、代わりに何がありますか?

編集:

私のルータのセットアップ

import { Routes, RouterModule } from '@angular/router'; 

import { AppComponent } from './app.component'; 
import { DashboardComponent } from './dashboard/dashboard.component'; 

import { UserRoutes } from './user/user.routing'; 
import { DashboardRoutes } from './dashboard/dashboard.routing'; 
import { LoginRoutes } from './login/login.routing'; 

const routes: Routes = [ 
    ...UserRoutes, 
    ...DashboardRoutes, 
    ...LoginRoutes, 
    //this needs to redirect to a homepage 
    {path:'', component: DashboardComponent} 
]; 

export const appRoutingProviders: any[] = [ 

]; 

export const routing = RouterModule.forRoot(routes); 
+0

ルーティング設定はどこですか?インポートに 'Router'ではなく' RouterModule'をインポートしてください。 –

+0

私はrouter.navigateを使用しようとしています。だから、私はRouterModuleのインポートがうまくいくと思いませんか?私は標準的なルータの設定をしていますが、上記のように参照用に追加してください。@MadhuRanjan – mwild

+0

'NgModule'の' imports'に 'Router'を追加するのは間違っています。 TypeScriptのインポートとモジュールのインポートを混同しないでください。 'AppModule'に' routing'( 'RouterModule.forRoot(routes)')をインポートする必要があります。私はあなたの質問にこのコードが表示されません。また、 'LoginModule'の' NgModule'に 'RouterModule'をインポートするべきだと思います。 –

答えて

0

[OK]をので、私はいくつかの読み取りを行なったし、それはいくつかのtypescriptですコンパイラは同じように角度を推奨していますTSC角度DIを扱ういけないことが判明。私は以前、別のタイプのスクリプトコンパイラを使用した独自のビルドプロセスを使用していました。

解決策は、私の構築プロセスを、角度で推奨されるものを使用することに戻すことでした。かなり奇妙な問題と診断するのは難しい問題です。

皆さんありがとうございます。

関連する問題