У меня компонент даты в котором можно выбирать временной период и модель в которой есть три поля:
- startDate - начало периода
- endDate - конец периода
- period - какое-то число равное количесту дней. Можно выбирать день, неделю и т.д. и тогда его значение будет равно 1, 7 и т.д. соответсвенно
Для каждого поля модели есть соответсвующий элемент интерфейса.
Алгоритм работы следующий:
- Я изменил period:
- endDate - остается неизменным
- startDate - вычисляется как endDate - period
- контрол, который отображает значение поля period, должен отображать сооветсвующий период
- контролы, которые отображают значения полей endDate и startDate, так же обновляются
- Я изменил startDate:
- period - сбросился, поскольку более не равен какому-то предустановленному значению
- контрол который отображает значение поля period должен "сброситься"
И вот тут самое интересное. Когдя я обновляю, например, поле period то должны обновиться и поля endDate и startDate, а их обновление сразу ведет к обновлению поля period в пустое значение, что, конечно, не верно.
И вопрос в том как это побороть.