Внедрение зависимостей не работает в приложении angular - PullRequest
0 голосов
/ 05 мая 2020

У меня проблемы с доступом к свойствам моей службы. Как вы можете видеть на изображениях ниже, декораторы и импорт в порядке, а сама служба была правильно добавлена ​​и внедрена. Похоже, я не понимаю, что вызывает ошибку, поскольку соблюдается "нормальная процедура" внедрения зависимостей. Рассматриваемая служба - это служба регистрации. Есть какие-нибудь советы по решению проблемы? Заранее спасибо.

app.module.ts

enter image description here

register.component.ts

enter image description here

register.service.ts

enter image description here

Часть компонента register. html

enter image description here

Я получаю ошибки (все похожие ):

enter image description here**

Файлы:

enter image description here

Ответы [ 3 ]

2 голосов
/ 05 мая 2020

Я указываю на 2 ошибки в приведенном выше фрагменте кода.

  1. Да Очевидно, при реализации ловушки жизненного цикла OnInit в классе RegisterService. Поскольку все хуки жизненного цикла предназначены для компонентов, а не для служб.

  2. Поскольку вы уже добавили строку ниже в класс RegisterService.

@ Injectable ({providedIn: 'root'})

Вам не нужно снова добавлять этот класс обслуживания в массив поставщика app.module .ts класс. Поскольку @Injectable({providedIn: 'root'}) уже означает, что вы внедрили услугу на уровне root.

0 голосов
/ 05 мая 2020

Только экземпляры директив и компонентов имеют жизненный цикл, поэтому register.service.ts создается как компонент

0 голосов
/ 05 мая 2020

сервисы не поддерживают жизненный цикл компонентов, таких как OnInit et al. c

ваш сервис может быть таким

@Injectable()
export class FormService {
  contactForm: FormGroup;

  constructor(private formBuilder: FormBuilder) {
    this.createContactForm();
  }

  createContactForm(){
    this.contactForm = this.formBuilder.group({
      fullName: [''],  
      email: [''],
      message: ['']
    });
  }
}

пример

...