Это потому, что вы объявляете свою функцию обратного вызова следующим образом:
function() { }
вместо использования функции обозначения стрелки:
() => { }
Вам необходимо преобразовать ваш обратный вызов в функцию стрелки.
let x = setInterval(() => {
// ...
}, 1000);
Это работает, потому что this
внутри функции стрелки относится к внешней области, тогда как в function() { }
это относится к функции сам. На данный момент все, что вы делаете, это устанавливаете свойства для внутренней функции, а не для компонента.
Очистите интервал в ngOnDestroy
В качестве отступления вы также захотите очистить интервал в ngOnDestroy()
, чтобы гарантировать, что обратный вызов не будет продолжать работать после уничтожения компонента.
Вы также можете изучить функцию Rx JS interval
в качестве альтернативы.