Обработка изменения взаимосвязанных полей в схемах
Добрый день,
В схеме есть несколько взаимозависимых полей (зависимости прописаны в attributes - dependencies), соответственно при изменении одного из них они начинают вызывать друг друга и чтобы предотвратить рекурсию нужно писать сложные алгоритмы проверки.
Можно ли как-то определить какое поле было изменено первоначально?
Может быть можно создать обработчик события изменения самого поля, а не тех, от кого он зависит.
Нравится
Добрый день!
Никакого штатного механизма по определению какое поле было изменено изначально нет.
В последних версиях, если поле изменяется, но значение остается неизменным, то зависимость вызываться не должна. Можно попробовать использовать метод unbind, но нужно не забыть вернуть все на место.
Обработчик события изменения самого поля создается также с помощью dependencies, но все зависимости все равно вызовутся.