Дело в том, что в угловых хуках (NgOnInit, AfterView и т. Д.) Вы не знаете, когда разрешен ввод для немого компонента.
Поэтому лучший подход - установить его так:
@Input() set(counter: Counter) {
if(!counter) {
return;
}
//do your logic here
this.calculateCUrrentDate(); // my method for calculate the time
console.log(counter);
}
То же самое относится и к другим входам, поэтому, если вам нужно использовать этот счетчик в html, вам потребуется иметь локальную переменную в этом немом компоненте и вызывать обнаружение изменений после того, как вы назначите ему значение, которое будет инициироваться длярендеринг в html.
PS: Я бы посоветовал вам использовать оператор elvis с углового в html, например,
counter.somehting разрушит ваше приложение, если в какой-то момент счетчик не определен.
Так вот, например, вы должны использовать это и во всем приложении:
<div *ngFor="let counter of counters">
<app-display-test [title]="counter?.title"
[date]="counter?.date"
[counter]="counter">
</app-display-test>
</div>