Я бы предложил поместить декоратор Input()
в 'setter' вместо 'getter'. Несмотря на то, что оба они действительны, включение их в метод получения означает, что вы могли бы столкнуться с проблемами, если у вас (по какой-то причине) было другое имя для метода установки.
Я рекомендую изменить на:
get show(): boolean {
return this.isShowing;
}
@Input()
set show(val: boolean) {
this.isShowing = val;
this.showChange.emit(this.isShowing);
}
Кроме того, удалите поле show
, поскольку оно даже не устанавливается, поскольку вы добавили isShowing
в качестве поля.
Редактировать 1:
Вам также необходимо убедиться, что вы импортировали и объявили компонент счетчика в вашем Module
. Перейдите к Module
, в котором вы работаете (скорее всего, AppModule
, если вы не создали общий).
Добавьте оператор импорта вверху, а затем также в массив declarations
Module
.
Редактировать 2:
Как указывал @littleGreenDude, также добавьте туда оператор импорта для SpinnerService
, но поместите его в массив providers
вместо массива declarations
. Это регистрирует службу в контейнере Angular DI (Dependency Injection), чтобы он мог инициализировать его, чтобы другие компоненты могли вставить его в них.