Ошибка ясна, и вы правы, механизм внедрения зависимостей вызывает ее.Каждая зависимость, которую вы передаете в конструктор, должна быть внедрена во время выполнения, и Angular должен знать, что передать.
В вашем случае Angular не знает, что вводить как строку title
.
Вы можете явно указать Angular, что вводить в массиве вашего поставщика модулей для типа String.Однако это означает, что все, что вы предоставляете в массиве провайдеров, будет использоваться каждый раз.
@NgComponent({
...
providers: [
{ provide: String, useValue: 'my title' }
],
})
Посмотрев на ваш код, вы можете инициализировать компонент с помощью переменной @Input
- Угловое взаимодействие компонента
export class FilterComponent implements OnInit {
@Input() title: string;
}
<app-filter [title]="Title 1"></app-filter>
Простая демонстрация: https://stackblitz.com/edit/angular-rs6sfy