нём происходит такая проверка: Передаём id элемента, получаем координаты предыдущего элемента, сверяем с координатами кнопки внизу экрана, элемент не должен залазить на кнопку
3. Если id 1 - то всегда выводим(для первого элемента)
4. На этой проверке приложение кидает ошибку (Expression has changed after it was checked)
Как избавиться от ошибки? Отрабатывает всё верно
рассчитать координаты заранее, чтобы данные не бегали от одного элемента к другому, а расставлялись сразу
попробуй использовать ChangeDetectorRef.detectChanges()
id элементов задаются ngForOf то есть: 1. Создался первый элемент, у него id=0 2. Дальше проверка для второго, получаем первый по id 3. Сравниваем координаты, если Ok - то генерим второй и вешаем на него id=1
прописывать detectChanges в самой проверка ngIf?
у тебя цикл происходит по данным из подписки наверное?
тогда такой поток данных. сначала ты создаешь один элемент, меряешь у него размеры, по результатам создаешь другой. или не создаешь. поможет ViewChildren, с помощью него можно получить поток который будет сообщать о появлении новых элементов в разметке. можно обертку написать
а, ну можно попробовать воткнуть detectChanges сразу после генерации нового элемента
Извините, немного не так сказал, такая ошибка падает тогда, когда в начало массива добавляется новый элемент, который становится первым, без этого всё работает отлично
проверка *ngIf возвращает true И тогда я уже не могу вызвать detectChanges, если же вставлю раньше, то получу Reached max amount of directives error
Обсуждают сегодня