Страница 1 из 1
Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 12:01 am
gorobey
Всем привет.
Сделал вроде не запрещенную вещь. Создал дочерний объект класса Relays. Переопределил 2 метода turnOn и turnOff. При вызове метода вручную через строку браузера все работает.
http://192.168.99.хх:80/objects/?object=Switch_komn1&op=m&m=turnOn&
Потом создал элемент выключатель в меню и привязал новый объект к этому выключателю. По идее когда я переключаю выключатель в разные положения должны бы вызываться методы turnOn or turnOff. Но желаемого результата не достиг.
Подскажите как диагностировать проблему. Вызывался таки метод и он не сработал или он просто не вызывался.
Заранее спасибо.
Re: Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 9:46 am
nick7zmail
Во-первых. При создании элемента в меню - можно к нему привязать прямо там метод.
Во-вторых можно связать свойство с методом, а к выключателю привязывать только свойство.
Нужно сделать что-то из этого...
Re: Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 4:09 pm
gorobey
Поддерживаю во первых. Но метод можно привязать 1-ин для 1 пункта меню. А мне нужно как бы два. Так как положения выключателя 2-а
Поддерживаю во вторых. Свойство к выключателю привязал сразу. Не ясно только как связать свойство с методом.
Почему-то считал, что свойство status в классе Relays должно быть связано с методами turnOn и turnOff. Вот только не уверен что в обе стороны. При вызове метода свойство меняется по идее. А вот или при смене свойства связанного с элементом меню вызывается ли метод. Или я что-то уже поломал в логике вещей ? Но главный вопрос как это проверить.
Re: Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 4:16 pm
nick7zmail
gorobey писал(а):Поддерживаю во первых. Но метод можно привязать 1-ин для 1 пункта меню. А мне нужно как бы два. Так как положения выключателя 2-а
Поддерживаю во вторых. Свойство к выключателю привязал сразу. Не ясно только как связать свойство с методом.
Почему-то считал, что свойство status в классе Relays должно быть связано с методами turnOn и turnOff. Вот только не уверен что в обе стороны. При вызове метода свойство меняется по идее. А вот или при смене свойства связанного с элементом меню вызывается ли метод. Или я что-то уже поломал в логике вещей ? Но главный вопрос как это проверить.
Да, вы правы - метод к выключателю привязывается 1. Как и к свойству...
Соответственно чтобы запускать один из них - нужно создать промежуточный...что-то типа
Код: Выделить всё
if(gg('нужное.свойство')==1){
cm('нужный.метод_1');
} else {
cm('нужный.метод_2');
}
И то и другое (из предыдущего сообщения) не стоит делать...получится двойной вызов метода...1 при смене свойства, второй при переключении выключателя...
Класс Relays у меня снесен давненько...не помню как там что было))
Re: Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 8:17 pm
gorobey
Спасибо сделал промежуточный метод и поехало. Только заработало почему-то с
$status=$this->getProperty("status");
if ($status) {...
Re: Вызов метода при нажатии на элемент выключатель
Добавлено: Вс дек 18, 2016 8:32 pm
nick7zmail
Без разницы... gg('нужное.свойство') - обращение к конкретному св-ву конкретного объекта, а $this->getProperty("status"); - обращение к св-ству любого объекта из класса, от имени которого запущен метод....