#angular #module
#angular #модуль
Вопрос:
Я хочу вызвать службу, импортированную в мой @NgModule, из компонента входа в систему. Это то, что я сделал, но это не работает. Я только начал работать над окончательной версией A2.
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;
}
Есть идеи?
Комментарии:
1. Подсказка из руководства по стилю: «Избегайте префикса к частным свойствам и методам с подчеркиванием». angular.io/guide/styleguide#style-03-04
Ответ №1:
Внутри конструктора Service
должно быть LoginService
так, как вы хотели получить доступ / создать экземпляр LoginService
. Также убедитесь, что LoginService
был импортирован.
constructor(
private _service: LoginService //<-- changed dependency type name
) {
}
Комментарии:
1. Я получаю это: Ошибка: не удается разрешить все параметры для входа в систему: (маршрутизатор, ?).
2. @AdrienCastagliola у тебя есть
router-outlet
директива на странице ..?
Ответ №2:
Измените класс компонента для использования LoginService
export class Login implements OnInit{
constructor(
private _service: LoginService
) {
}
ngOnInit() {
this._service.login(value)
.subscribe(x => console.log(x));
}
}
}
Ответ №3:
Вы также должны импортировать LoginService в компонент Login и добавить его в конструктор как:
constructor( _service: LoginService) { }