Итак, я просто начну говорить, что я почти уверен, что эта ошибка возникает либо из-за моего понимания понимания изолята в угловых директивах, либо какого-то странного взаимодействия между директивами и угловую директиву маркеров карт Google.Требуется 2 клика для изменения угловой директивы
В любом случае, проблема заключается в том, что у меня есть экземпляр материала с угловыми картами google в моем основном контроллере, и у меня есть тег внутри этого. У меня также есть директива, которая захватывает пользовательские входы и использует их для заполнения списка в главном контроллере, чтобы тег выполнял свою работу. Я передаю объект и функцию от основного контроллера в область выделения директивы.
Странно то, что в моих директивах я привязал эту функцию к нажатию кнопки для формы, и по какой-то причине для получения маркера требуется 2 щелчка. Функция запускает первый клик, имеет все правильные значения и все, но маркер не появляется. Еще один странный, который я проверил, просто вызывал метод дважды подряд за один клик, который не работал (по-прежнему требуется 2 нажатия кнопок).
Функция изменяет массив в главном контроллере (у меня такое чувство, что это корень проблемы), который используется тегом в качестве списка маркеров. Любые идеи о том, почему это может произойти? Если это не похоже на явное недоразумение Angular scoping, я могу опубликовать код.
Моя первая мысль - ваши данные происходят за пределами цикла дайджеста. И если это так, то добавление '$ scope. $ Digest()' после обновления ваших данных может решить проблему (или дать вам консольную ошибку). Однако код проводки поможет. –
Вот и все! Если вы поместите свой комментарий в качестве ответа, я буду отмечать его как таковой. Мне любопытно, почему мне нужно заставить дайджест в этой ситуации, но я думаю, что если я изучу этот цикл немного, я, вероятно, смогу это выяснить. – Mike
Если его в обратном вызове, привязка в контроллере или тайм-аут/интервал (между прочим), он выводит его за пределы цикла дайджеста и требует принудительного пересчета. –