2016-10-24 16 views
0

ログインコンポーネントから@ngModuleにインポートされたサービスを呼び出したいとします。 これは私がやったことだが、動かない。 私はA2の最終版で作業を始めました。@ngModuleからサービスを呼び出す

export class Login implements OnInit{ 
    constructor(
    private _service: Service 
    ) { 
    } 
    ngOnInit() { 
    this._service.login(value) 
     .subscribe(x => console.log(x)); 
    } 
    } 
} 

マイ@ngModule

import { NgModule } from '@angular/core'; 
import { RouterModule } from '@angular/router'; 
import { LoginService } from '../service/login.service'; 

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

export const routes = [ 
    { path: '', component: Login, pathMatch: 'full' } 
]; 

@NgModule({ 
    declarations: [ 
    Login 
    ], 
    imports: [ 
    CommonModule, 
    RouterModule.forChild(routes) 
    ], 
    providers: [LoginService] 
}) 
export default class LoginModule { 
    static routes = routes; 
} 

任意のアイデア?

+0

スタイルガイドからのヒント: "プライベートプロパティとメソッドの先頭にアンダースコアを付けないでください。" https://angular.io/guide/styleguide#style-03-04 – Zymotik

答えて

1

内部コンストラクタServiceは、LoginServiceのインスタンスにアクセスして作成したいので、LoginServiceである必要があります。また、LoginServiceがインポートされていることを確認してください。

constructor(
    private _service: LoginService //<-- changed dependency type name 
    ) { 
} 
+0

私はこれを受け取ります:エラー:Login:(Router、?)のすべてのパラメータを解決できません。 –

+0

@AdrienCastagliolaあなたはページに 'router-outlet'指示文を持っていますか? –

1

チャゲコンポーネントのクラスはあなたがまた、ログインコンポーネントでLoginServiceをインポートし、としてコンストラクタにそれを追加する必要がLoginService

export class Login implements OnInit{ 
    constructor(
    private _service: LoginService 
    ) { 
    } 
    ngOnInit() { 
    this._service.login(value) 
     .subscribe(x => console.log(x)); 
    } 
    } 
} 
0

を使用するには:

constructor(_service: LoginService) { } 
関連する問題