sinneren: достаточно в самом событии проверить, а не открыт ли балун. Вроде как ObjectManager.objects/clusters.balloon.isOpen()
С маржинами то да, но для небольших разрешений такое решение не подходит. Или когда карта не фуллскрин.
Ну для начала - создайте новый массив. После этого пишите цикл, в котором будете получать по индексу элемент из первого массива и делать с ним операцию.
Повышается консистентность кода, легко тестируется, a $digest можно и не вызывать, $interval принимает такой параметр. При необходимости делать что-то перед редиректом, не придется всё переписывать.
ozknemoy: это все здорово, но проще же сделать сразу нормально, чтобы потом не пришлось переписывать когда/если такая потребность появится, учитывая что в данном случае даже лишнего кода не придется писать.
Ну оно отрабатывает. Просто в этот момент this.users ещё пустой. Этот цикл же вне subscribe находится. Приложите весь шаблон компонента. Судя по всему проблема всё таки в нем.
нет, не должен.
Объекта Elements не существует в DOM/JS.
Создание элемента != добавление в DOM.
Посмотрите пример по ссылке, которую я прислал. Там даже комментарии есть.
Дмитрий Поляков: всё от верстки зависит. Как правило если элементы можно сверстать так, чтобы они были в потоке - лучше сверстать так, чтобы были в потоке
LordGuard: конечно проблема, на эту тему написан миллиард статей, кроме того авторы и контрибьюторы react бьются над тем, чтобы уменьшить операции с DOM внутри react. Вы не сможете посчтитать размеры невидимых карточек правильно, т.е. при изменении интерфейса необходимо будет просчитывать что-то ещё. Проблема не в CSS/DOM, а в том, что перед получением значений из DOM будет перерисовка экрана, что плохо сказывается на производительности
Все нужные компоненты подписаны на store через subscribe, в B делаете dispatch. Очевидно что если нужно обновить общий стейт нескольких компонент - этот стейт должен быть в сторе, иначе зачем вам вообще redux?
ObjectManager.objects/clusters.balloon.isOpen()
С маржинами то да, но для небольших разрешений такое решение не подходит. Или когда карта не фуллскрин.