2023-02-02 10:00:40
Всем привет!
Публикуем правильный ответ на вчерашний #ёмоёlowcode:
dog=cat
cat=mouse
monkey=man
robot=man
И первым правильно ответившим, хоть и сомневающимся в своем ответе, оказалась @razo4arovan1e. С чем мы её и поздравляем!
(победителю на рабочую почту должен прийти мельнький презент в ближайшее время)
Давайте теперь разберем, почему так происходит.
Все дело в последовательности, с которой движок Eftech.Factory обрабатывает нашу схему:
- сначала он проходится по
каждому уровню вложенности и
последовательно строит модель данных, инициализируя каждое значение тем, что описано у нас в value. Результатом данного шага у нас получается следующее:
dog=dog
cat=cat
monkey=monkey
robot=robot
- далее
последовательно для каждого элемента идет обработка ключа widget (создание самого виджета и обработка указанных опций, в том числе events). Обработка events.init происходит именно в этот момент. Т.к. элементы обрабатываются
последовательно, то тут и кроется разгадка поведения.
- после обработки ключа widget для элемента dog меняется значение c dog на cat, т.к. cat=cat на этот момент:
dog=cat
cat=cat
monkey=monkey
robot=robot
- после обработки ключа widget для элемента cat меняется значение c cat на mouse:
dog=cat
cat=mouse
monkey=monkey
robot=robot
- после обработки ключа widget для элемента monkey меняется значение c monkey на man:
dog=cat
cat=mouse
monkey=man
robot=robot
- и финально после обработки ключа widget для элемента robot меняется значение c robot на man, т.к. monkey=man на этот момент:
dog=cat
cat=mouse
monkey=man
robot=man
Теперь вы знаете о такой особенности, надеемся, это поможет вам в решении возникающих непонятных ситуаций!
Если у вас остались вопросы - задавайте в комментариях, а мы уже готовим для вас следующее задание )
66 views07:00