NEWS
Написание своего виджета
-
Пытаюсь написать виджет.
В виджете есть код.
Почему вподставляется значение <%= this.data.attr('oid') %>
А в
<canvas id="<%= this.data.attr('oid') %>" ставится/!/!/?/Код/вроде/идентичный./(В/width="<%==this.data.attr('dialog_width')%>" аналогично)<br="">````
<%== this.data.attr("html_prepend") %>
<canvas id="<%= this.data.attr('oid') %>" width="<%==this.data.attr('dialog_width')%>" height="100%"></canvas>
<%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
В элемент <canvas id="<%= this.data.attr('oid') %>" потом/скриптом/вставляются/данные<br=""> Как в скрипте присвоить занчения из переменных виджета? </canvas> </canvas>
-
Пытаюсь написать виджет.
В виджете есть код.
Почему вподставляется значение <%= this.data.attr('oid') %>
А в
<canvas id="<%= this.data.attr('oid') %>" ставится/!/!/?/Код/вроде/идентичный./(В/width="<%==this.data.attr('dialog_width')%>" аналогично)<br="">````
<%== this.data.attr("html_prepend") %>
<canvas id="<%= this.data.attr('oid') %>" width="<%==this.data.attr('dialog_width')%>" height="100%"></canvas>
<%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
В элемент <canvas id="<%= this.data.attr('oid') %>" потом/скриптом/вставляются/данные<br=""> Как в скрипте присвоить занчения из переменных виджета? </canvas> </canvas> `
По моему браузер пытается на каждом этапе отрисовать canvas.
Я обошёл эту проблему так:
<%== this.data.attr("html_prepend") %><% var canvas = ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> '; <%== canvas %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать.
-
По моему браузер пытается на каждом этапе отрисовать canvas.
Я обошёл эту проблему так:
<%== this.data.attr("html_prepend") %><% var canvas = ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> '; <%== canvas %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать. `
<%== canvas %> Должен вывести переменную? у меня ничего не выводится -
Вообщем все печально, я вообще въехать не могу как добавить виджет, запутался в коде.
Еще и index.html и edit.html не пересоздаются каждый раз.
Приходится редактировать виджет в файлах index.html и edit.html.
Хотел добавить вот такой виджет http://www.3quarks.com/en/SegmentDisplay/
Может кто возьмется или объяснит на пальцах, что и как устроено в коде vis
Все что удалось это тупо вывести значение переменной…
6305_flot_arbeit.png
6305_flot_bad_gross.png
6305_flot_bad_klein.png
6305_flot_zimmer3.png
6305_flot_zimmer2.png
6305_flot_zimmer1.png
6305_flot_eg.png
6305_flot_lueftung.png
6305_flot_aussen.png -
По моему браузер пытается на каждом этапе отрисовать canvas.
Я обошёл эту проблему так:
<%== this.data.attr("html_prepend") %><% var canvas = ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> '; <%== canvas %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
То есть сначала полностью собрать canvas тег, а потом его за раз отрисовать.
<%== canvas %> Должен вывести переменную? у меня ничего не выводится
Я забыл указать закрывающую скобку<%== this.data.attr("html_prepend") %><% var canvas = ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> '; %> <%== canvas %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
или так
<%== this.data.attr("html_prepend") %><% <%== ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> ' %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
-
Я забыл указать закрывающую скобку
<%== this.data.attr("html_prepend") %><% var canvas = ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> '; %> <%== canvas %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %>
или так
<%== this.data.attr("html_prepend") %><% <%== ' <canvas id="' + this.data.attr('oid') +'" width="' + this.data.attr('dialog_width') +'" height="100%"></canvas> ' %> <%== (parseFloat(vis.binds.basic.formatFloat(this.data)) == 1 ? this.data.attr("html_append_singular") : this.data.attr("html_append_plural")) %> ```` `
Хорошо, а как в script засунуть параметры виджета? и чтобы потом в '
<canvas id="…" отобразить/с/определенными/параметрами?/Вообще/как/из/виджета/можно/выполнить/код/js?</r=""></canvas>
-
Например````
vis.binds.basic.formatFloatи есть код JS. [6305_flot_lueftung.png](/assets/uploads/files/6305_flot_lueftung.png)
-
Например````
vis.binds.basic.formatFloatи есть код JS. `
т.е. это мы вызываем функуию formatFloat а это типо ветки с функциями vis.binds.basic.?
Что означают эти скобки <%== ? <% или <%= и <%== в чем разница?
-
Например````
vis.binds.basic.formatFloatи есть код JS. `
т.е. это мы вызываем функуию formatFloat а это типо ветки с функциями vis.binds.basic.? `
Всё верно.
@instalator:Что означают эти скобки <%== ? <% или <%= и <%== в чем разница? `
Это синтаксис CanJS-EJS (Описание http://canjs.com/guides/EJS.html)<%== - вывод HTML текста без изменнений в это место
<%= - вывод текста (все теги будут преобразованы - escaped)
<% выполняет написанный JS код
-
Можешь вот здесь посмотреть, как можно было встраивать:
https://github.com/ioBroker/ioBroker.vi … ather.html
Ищи tplSegmentClock: function (el, data)
48_clock.gif -
Это синтаксис CanJS-EJS (Описание http://canjs.com/guides/EJS.html)
<%== - вывод HTML текста без изменнений в это место
<%= - вывод текста (все теги будут преобразованы - escaped)
<% выполняет написанный JS код `
Да это просто магия) Буду дальше вникать… Спасибо.Можешь вот здесь посмотреть, как можно было встраивать:
https://github.com/ioBroker/ioBroker.vi … ather.html
Ищи tplSegmentClock: function (el, data) `
час и готово?) я два вечера разобраться не мог. -
Добавил себе, часы почему то не работают, да они и не нужны были, переменную отображает, теперь окно управления нагревателем выглядит как оригинальная панель управления)
-
Часы поправил.
Вот только недавно хотел написать в форум вопрос о хороших цифровых часах. А тут ты со ссылкой.
Поэтому я так быстро встроил.
Если ещё какие-нибудь виджеты найдёшь, говори.
-
Тоже неплохо выглядит http://www.3quarks.com/en/SVGClock/index.html
-
Если ещё какие-нибудь виджеты найдёшь, говори. `
Не совсем готовые виджеты, интересная библиотечка, выбор дат и т.п. можно организовать