Стартовая страница › Форумы › Понять, как работает ПО › Мнемосхемы › Изменение в построенном DOM
- В этой теме 47 ответов, 3 участника, последнее обновление 4 часа, 3 минуты назад сделано
manjey73.
-
АвторЗаписи
-
25.06.2026 в 17:38 #44042
MikhailМодераторНапишите, пожалуйста, что добавить в пример Damper или в новый пример, чтобы получился образец, на основе которого Вы и другие пользователи сможете сделать то, что нужно для проекта.
25.06.2026 в 17:45 #44043
manjey73Участникок, я попробую сделать несколько вариантов Damper, проверив, вызывают ли они ошибку или перестают работать. Выложу тогда в облако и постараюсь описать результат их работы.
26.06.2026 в 11:39 #44044
manjey73УчастникВ архиве два Damper. 1 и 2 lkz c[tvs ExtraCompTest.mim
Переименовываете свой оригинальный, любой из этих в Damer1-й — просто перенесен скрипт как есть из скрипта фейсплейта в скрипт компонента с соответствующими правками скрипта (id и properties)
добавлен dataUpdated в компонент с выводом в лог — НЕ РАБОТАЕТ — вообще dataUpdated должен работать в скрипте компонента или не предусматривалось? хотелось бы, чтобы работало как и остальное
domUpdated вызывает тот же скрипт, что и domCreated, так что тут будет не видно, что к чему.
Родился попутный вопрос — каковы условия для срабатывания domUpdated внутри компонента? И каковы условия для обновления Раметки в DOM ? просто сделал тут схему с одним единственным компонентом и странно, domUpdated не срабатывает вообще, Разметка не обновляется. То есть не вызывается весь этот механизм.2-й — добавлена функция построения <line>, строит вертикальную синюю линию посередине всего фейсплейта в domCreated компонента. И покрашен прямоугольник
То, что присутствует в Разметке, сохраняется, так как она обновляется. domUpdated только изменяет, но не строит (команды тут не переносил, так что поворачиваться damper не будет, цель показать другое).
То, что создал на лету domCreated убивается при обновлении Разметки из исходника в DOMе — вот это нужно отключить нафик каким-то образом.
Все это видно, нажимая обновление экрана по F5. Видно. как появляется вертикальная полоса, а потом убивается обновлением Разметки в DOM.Цель, разделить разделяемое. domCreated должен что-то создать.
domUpdated должен только менять, а не заставлять его пересоздавать то, что создавалось в domCreated.
dataUpdated должен работать в компоненте, вставленном в faceplate, чтобы в него перенести то, что связано непосредственно с компонентом.
Скрипты фейсплейта использовать для общих вещей между компонентами и тем, что затрагивают сам фейсплейт.26.06.2026 в 11:42 #44045
manjey73Участникпо поводу скриптов фейсплейта. Когда и во сколько он отрабатывает по отношению к скрипту компонента?
Есть вариант сделать что-то вроде PrevVal() ?
то есть обернуть во что-то, что сработает первым, до выполнения скриптов компонентов, а остальное будет срабатывать после отработки скриптов компонентов?29.06.2026 в 12:46 #44048
MikhailМодераторКогда и во сколько он отрабатывает по отношению к скрипту компонента?
С помощью отладчика пройдитесь по шагам в этой части кода.
29.06.2026 в 13:09 #44049
manjey73УчастникПока что отладка в js для меня темнее тёмного 🙂
Собственно речь была о том, а есть ли разделение по времени выполнения кода самого фейсплейта ДО и ПОСЛЕ исполнения скриптов внутри компонентов?Это было бы полезным в будущем.
Какой-то метод по типу domCreated, но который исполнится до всех скриптов компонентов.
Например подготовит внутренние переменные, чтобы в скриптах компонентов не писать постоянно бла-бла-бла.Родительские.Свойства (ну это примитивный пример конечно)01.07.2026 в 12:28 #44064
MikhailМодераторПока что отладка в js для меня темнее тёмного
Подскажу как это делается. Точно понадобится. Нажмите F12, перейдите на вкладку Source. Здесь будет много фреймов, самое неочевидное — найти нужный. Затем найдите файл js, который интересует. Т.к. исходные файлы скриптов мнемосхем объединяются в bundle, то в имени файла будет bundle. Затем поиском Ctrl+F найдите класс и поставьте в нём точку остановка (мышкой). Если выбран правильный файл и правильное место в коде, то через несколько секунд выполнение скрипта остановится в нужном месте. Далее можно выполнять код по шагам.
01.07.2026 в 12:29 #44065
MikhailМодераторесть ли разделение по времени выполнения кода самого фейсплейта ДО и ПОСЛЕ исполнения скриптов внутри компонентов?
Я тоже не держу в голове детально, как это работает. Проще один раз увидеть самому в отладчике.
01.07.2026 в 13:18 #44067
manjey73УчастникЛадно с отладкой. Больше интересует вопрос, что делать с описанным? А конкретно будет ли отключение повторного переноса кода разметки, чтобы domUpdated мог работать сам по себе, а не требовал полного перестроения в сриптах ????
Это куда актуальнее для решения разных задач.
И почему скрипт dataUpdated внутри компонента не работает вообще?
02.07.2026 в 10:32 #44078
MikhailМодераторНапишите, пожалуйста, что добавить в пример Damper или в новый пример, чтобы получился образец, на основе которого Вы и другие пользователи сможете сделать то, что нужно для проекта.
02.07.2026 в 10:39 #44079
manjey73Участниктак я же выложил два damper (1 и 2)
1. Добавить ОТКЛЮЧЕНИЕ обновления DOM из Разметки перед выполнением скрипта domUpdated. (перенос на страницу исходного текста Разметки (ExtraMarkup) и необходимость повторного запуска скрипта, по сути domUpdated должен уметь работать уже с созданным, а не пересоздавать)
2. добавить РАБОТУ скрипта dataUpdated внутри компонента, вставленного в faceplate
Думаю пару этих вещей облегчат немного возможности при создании faceplate.
В Damper2 как раз показывается, что копирование Разметки перезатирает все, что было создано в domCreated.
-
Ответ изменён 1 неделя назад пользователем
manjey73.
02.07.2026 в 10:44 #44081
manjey73УчастникА, в целом для Редактора, когда делаешь Faceplate сделать кнопочку для проверки работы скрипта.
Например вместо каких-то строк писать дополнительные.Например в работе мнемосхемы надо args.component.parent.properties — такую строку комментируем.
Рядом пишем другую, которую поймет Редактор в режиме редактирования faceplate.Сейчас работа скриптов при редактировании фейсплейтов полностью отключена, если я правильно понимаю. То есть чисто для тестирования, поменял нужные строки, жмешь кнопку, видишь результат. ну или не видишь 🙂
03.07.2026 в 16:04 #44106
MikhailМодераторСейчас работа скриптов при редактировании фейсплейтов полностью отключена, если я правильно понимаю.
Это так. Чтобы реализовать данное пожелание, нужно создать некую тестовую среду, в которую поместить фейсплейт. Записал пожелание, но будет ли оно реализовано, не уверен.
08.07.2026 в 13:34 #44146
manjey73УчастникА 1 и 2 будет или можно привыкать к примитивам?
типа плакать. колоться и продолжать кушать кактус 😀
09.07.2026 в 16:31 #44155
MikhailМодераторСейчас ведётся работа по другим задачам. Мнемосхемы в режиме исправления ошибок.
-
Ответ изменён 1 неделя назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.