2016-10-24 3 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

Chage ваш компонент класса использовать LoginService

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

Вы должны импортировать LoginService в Вход компонента также и добавить его в конструкторе, как:

constructor(_service: LoginService) { } 
Смежные вопросы