NEWS
Как вызвать скрипт?
-
Подскажите, пожалуйста: как из vis можно вызвать скрипт кликом на виджет?
Ищу что-то типа события onClick, но не нахожу ничего подобного.
Что хочу сделать: например, на виджет (Метро) выводить кол-во горящих ламп, а по клику гасить их всех.
-
@Ho Hum:Подскажите, пожалуйста: как из vis можно вызвать скрипт кликом на виджет?
Ищу что-то типа события onClick, но не нахожу ничего подобного.
Что хочу сделать: например, на виджет (Метро) выводить кол-во горящих ламп, а по клику гасить их всех. `
createState('alloff', 0); on({id: 'javascript.0.alloff', change: 'any'}, function (obj) { if (obj.newState.val === true || obj.newState.val === 'true'){ log('Тут выключаем все что нужно.'); } });
-
Большое спасибо!
Вроде понял.
-
И еще один вопрос в продолжение темы.
Как можно изменить значение виджета?
Вывел виджет Метро Tile State / Badge Number. Он показывает количество включенных ламп через ID числа (считаю в скрипте, формирую объект со значением). Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".
Как это сделать - не понял.
-
@Ho Hum:И еще один вопрос в продолжение темы.
Как можно изменить значение виджета?
Вывел виджет Метро Tile State / Badge Number. Он показывает количество включенных ламп через ID числа (считаю в скрипте, формирую объект со значением). Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".
Как это сделать - не понял. `
Скинь скрипт, ничего не понял -
Скрипт такой:
`function getLights() { createState("Lights.Count"); createState("Lights.onCount"); setState("Lights.Count", lights1floor.length, true); var LightsOnCount = 0; for(var i = 0; i < lights1floor.length; i++) { if (getState(lights1floor[i]).val) { LightsOnCount++; } } setState("Lights.onCount", LightsOnCount, true); } // every 1 sec schedule("*/1 * * * * *", getLights);` В LightsOnCount помещаю кол-во включенных ламп. Если это значение не равно нулю, хочу из скрипта изменять состояние виджета.[/i]
-
> Объект для действия ставлю в ID статуса и значение устанавливаю в "1". При нажатии выключаю все лампы. Потом, когда какя-то лампа включается (например, клавишей), надо значение виджета установить в "0".
А зачем тебе выставлять 0? кнопка и так сработает если подписаться как any.Можно также подписаться на все твои выключатели например с помощью регулярок.
! Note: you can use RegExp directly:
! ````
on(/^system.adapter..*.\d+.memRss$/, function (obj) {
});>! // same as
on({id: /^system.adapter..*.\d+.memRss$/, "change": "ne"}, function (obj) {
});To simply connect two states with each other, write: >! on('stateId1', 'stateId2'); >! All changes of stateId1 will be written to stateId2. >! Function "on" returns handler back. This handler can be used by unsubscribe.
-
Спасибо, сделал, как хотел.
Не въехал пока в концепцию…