Angular: асинхронный процесс не вызывает changeDetection только в>= Chrome 64

Я отслеживаю размер элемента в угловых, используя ResizeObserver

 observer = new window.ResizeObserver(entries => {
     ...
     someComponent.width = width;
 });
 observer.observe(target);

stackblitz

Когда вы запускаете код в Safary, Firefox или Chrome 63, он работает просто отлично

введите описание изображения здесь

Итак, в chrome 64 ( can-i-use -> native support) он больше не работает и выглядит так:

введите описание изображения здесь

Так или иначе, chrome не выполняет changeDetection для триггеров из ResizeObserver

Любое предположение, что может быть причиной этого странного поведения?

ОБНОВЛЕНИЕ: я обновил свой пост на основе обсуждения ниже

1 ответ

Решение

zone.js содержит патч для ResizeObserver >= chrome 64, он не выпущен, пожалуйста, подождите, пока не выйдет следующая версия zone.js (0.8.21) https://github.com/angular/zone.js/pull/1012 это рабочий образец.

https://github.com/JiaLiPassion/zone-resize-observer

Другие вопросы по тегам