169 похожих чатов

Добрый день, подскажите пожалуйста. Ситуация: 1. У меня есть ngIf 2. В

нём происходит такая проверка: Передаём id элемента, получаем координаты предыдущего элемента, сверяем с координатами кнопки внизу экрана, элемент не должен залазить на кнопку
3. Если id 1 - то всегда выводим(для первого элемента)
4. На этой проверке приложение кидает ошибку (Expression has changed after it was checked)

Как избавиться от ошибки? Отрабатывает всё верно

10 ответов

3 просмотра

рассчитать координаты заранее, чтобы данные не бегали от одного элемента к другому, а расставлялись сразу

попробуй использовать ChangeDetectorRef.detectChanges()

Den-P Автор вопроса
xxtux Shvets
рассчитать координаты заранее, чтобы данные не бег...

id элементов задаются ngForOf то есть: 1. Создался первый элемент, у него id=0 2. Дальше проверка для второго, получаем первый по id 3. Сравниваем координаты, если Ok - то генерим второй и вешаем на него id=1

Den-P Автор вопроса
Sergei Sergeevich
попробуй использовать ChangeDetectorRef.detectChan...

прописывать detectChanges в самой проверка ngIf?

Den P
прописывать detectChanges в самой проверка ngIf?

у тебя цикл происходит по данным из подписки наверное?

Den P
id элементов задаются ngForOf то есть: 1. Создался...

тогда такой поток данных. сначала ты создаешь один элемент, меряешь у него размеры, по результатам создаешь другой. или не создаешь. поможет ViewChildren, с помощью него можно получить поток который будет сообщать о появлении новых элементов в разметке. можно обертку написать

Den P
прописывать detectChanges в самой проверка ngIf?

а, ну можно попробовать воткнуть detectChanges сразу после генерации нового элемента

Den-P Автор вопроса
xxtux Shvets
тогда такой поток данных. сначала ты создаешь один...

Извините, немного не так сказал, такая ошибка падает тогда, когда в начало массива добавляется новый элемент, который становится первым, без этого всё работает отлично

Den-P Автор вопроса
Sergei Sergeevich
а, ну можно попробовать воткнуть detectChanges сра...

проверка *ngIf возвращает true И тогда я уже не могу вызвать detectChanges, если же вставлю раньше, то получу Reached max amount of directives error

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
Как попросить stack install делать executable без .exe на винде?
Danila Danko
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
Карта сайта