Как известно, чтобы в angular инжектировать неокторый класс в другой класс необходимо использовать приблизительно такой подход:
import { Component } from '@angular/core';
import { HeroServiceProvider } from './hero.service.provider';
@Component({
selector: 'app-heroes',
providers: [ HeroServiceProvider ],
template: `
<h2>Heroes</h2>
<app-hero-list></app-hero-list>
`
})
export class HeroesComponent {
constructor(private heroServiceProvider: HeroServiceProvider);
}
Здесь важны 3 момента:
- должен присутствовать импорт
- импортируемый класс нужно прописать в массиве providers
- в конструкторе при помощи простейшего синтаксического сахара присвоить объект инжектируемого класса локальной переменной компонента.
Объясните пожалуйста зачем в этой цепочке нужен пункт 2? То есть понятно, что если не помещать инжектируемый класс в массив providers, то фреймворк выбросит исключение, но хотелось бы понять сам смысл этого помещения.
Почему бы разработчикам фреймворка не сделать так чтобы программисты после импорта инжектируемого класса сразу отдавали бы его через конструктор локальной переменной компонента?