Страница 1 из 1

Changed, предыдущее значение свойства

Добавлено: Пт июл 01, 2016 9:08 pm
nightwind
Господа, можно ли в методе Changed узнать предыдущее значение измененного свойства?
я так понял, метод вызывается при любом присваивании нового значения свойству, а не его изменении.
OnChange реализовать никак нельзя по-простому?
мне нужно отслеживать именно изменение. если свойство обновлено, но не изменилось - ничего не делать. как??

Re: Changed, предыдущее значение свойства

Добавлено: Пт июл 01, 2016 9:28 pm
Ivan
nightwind писал(а):Господа, можно ли в методе Changed узнать предыдущее значение измененного свойства?
я так понял, метод вызывается при любом присваивании нового значения свойству, а не его изменении.
OnChange реализовать никак нельзя по-простому?
мне нужно отслеживать именно изменение. если свойство обновлено, но не изменилось - ничего не делать. как??
http://majordomo.smartliving.ru/Hints/LinkedMethod
http://majordomo.smartliving.ru/Hints/Onchangemethod

Re: Changed, предыдущее значение свойства

Добавлено: Пт июл 01, 2016 9:52 pm
nightwind
спасибо за наводку. сделал так

свойство online прилинковано к устройствам_онлайн. выставляется правильно.

код метода, привязанный к свойству online (Запускать метод при изменении (не обязательно):)

$old=$params['OLD_VALUE'];
$new=$params['VALUE'];
if ($old !=$new) {
if ($new=="1") {
$this->setProperty("onlineAt",time());
$this->setProperty("onlineAtTime",date("H:i",time()));
}
else
{
$this->setProperty("offlineAt",time());
$this->setProperty("offlineAtTime",date("H:i",time()));

}
}

не работает. выполняется ветка else, хотя Online присваивается единица. похоже $old=$params['OLD_VALUE'];
$new=$params['VALUE']; работает как то не так

Re: Changed, предыдущее значение свойства

Добавлено: Пт июл 01, 2016 10:06 pm
nightwind
сделал say ($old.":".$new);
выдает 1:
нового значения нет