@ Компоненты OnPush без ввода в угловых
У меня есть сценарий, где у меня есть @Input-less OnPush
компонент в угловых. Если я позвоню markForCheck()
будет проверена привязка вида в шаблоне моего компонента?
Я имею в виду, мой компонент OnPush
а также markForCheck()
помечает всех предков, которые будут проверены, и, поскольку у моего компонента нет @Input, каково будет поведение Angular здесь? Будет ли Angular пропускать проверку привязок вида компонента или всегда будет проверять?
1 ответ
Решение
Как вы можете видеть из примера исходного кода из ChangeDetectorRef
, Вид показывает значение numberOfTicks
который обновляется, когда markForCheck()
называется. Обратите внимание, что компонент не имеет @Input()
привязок.
@Component({
selector: 'cmp',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `Number of ticks: {{numberOfTicks}}`
})
class Cmp {
numberOfTicks = 0;
constructor(private ref: ChangeDetectorRef) {
setInterval(() => {
this.numberOfTicks++;
// the following is required, otherwise the view will not be updated
this.ref.markForCheck();
}, 1000);
}
}