Как создать таблицу из объекта?

Вопросы и инфо о ioBroker.vis
Antworten
andrey99986
professional
Beiträge: 204
Registriert: 24.08.2016, 11:12

Как создать таблицу из объекта?

Beitrag von andrey99986 » 18.10.2016, 19:43

Есть объект с json-данными:

Code: Alles auswählen

sendTo('sql.0', 'query', 'SELECT *  FROM iobroker.history', function (result) {
    if (result.error) {
        console.error(result.error);
       } else {
           setState('Sql_history', JSON.stringify(result.result));
      }

});
В vis-е пытаюсь сделать таблицу:

Code: Alles auswählen

var obj = {javascript.0.Sql_history};
var tbl=$("<table/>").attr("id","mytable");
    $("#div1").append(tbl);
    for(var i=0;i<obj.length;i++)
    {
        var tr="<tr>";
        var td1="<td>"+obj[i]["ID"]+"</td>";
        var td2="<td>"+obj[i]["event_date"]+"</td>";
        $("#mytable").append(tr+td1+td2); 
    }   
Таблица не создаётся. Если скопировать значение объекта с json-данными сразу в js вместо {javascript.0.Sql_history} таблица создаётся.

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8102
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Как создать таблицу из объекта?

Beitrag von Bluefox » 18.10.2016, 20:11

A так?

Code: Alles auswählen

var obj = getState('Sql_history').val;
if (typeof obj === 'string') obj = JSON.parse(obj );

andrey99986
professional
Beiträge: 204
Registriert: 24.08.2016, 11:12

Re: Как создать таблицу из объекта?

Beitrag von andrey99986 » 19.10.2016, 04:47

Bluefox hat geschrieben:A так?

Code: Alles auswählen

var obj = getState('Sql_history').val;
if (typeof obj === 'string') obj = JSON.parse(obj );
Это в vis вставить? Но js на стороне клиента не знает функций iobrokera, в консоли браузера:

Code: Alles auswählen

Error: Error: can't render tplHtml w00129 (ReferenceError: getState is not defined) 

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8102
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Как создать таблицу из объекта?

Beitrag von Bluefox » 19.10.2016, 08:12

andrey99986 hat geschrieben:
Bluefox hat geschrieben:A так?

Code: Alles auswählen

var obj = getState('Sql_history').val;
if (typeof obj === 'string') obj = JSON.parse(obj );
Это в vis вставить? Но js на стороне клиента не знает функций iobrokera, в консоли браузера:

Code: Alles auswählen

Error: Error: can't render tplHtml w00129 (ReferenceError: getState is not defined) 
Я думал что ты через скрипт таблицу собираешь. Но ты понял идею, что надо парсить значение

andrey99986
professional
Beiträge: 204
Registriert: 24.08.2016, 11:12

Re: Как создать таблицу из объекта?

Beitrag von andrey99986 » 19.10.2016, 09:11

Оказывается таблица отображается нормально при просмотре страницы с клиента (код тот же), а в режиме редактирования в vis-е таблицы не видно.
Это баг или фишка?

andrey99986
professional
Beiträge: 204
Registriert: 24.08.2016, 11:12

Re: Как создать таблицу из объекта?

Beitrag von andrey99986 » 19.10.2016, 09:42

Возможная причина в экранировании точки в имени объекта, как правильно экранировать?
В элементе html на код js в скрипте ошибка не выводится - таблица в редакторе не отображается, но в клиенте таблица генерируется и показывается.
Если перенести js код в Скрипты vis-а, то ошибка отображается, таблицы нет в редакторе и нет при просмотре.
Dateianhänge
vis-er1.png

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8102
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Как создать таблицу из объекта?

Beitrag von Bluefox » 19.10.2016, 13:31

andrey99986 hat geschrieben:Оказывается таблица отображается нормально при просмотре страницы с клиента (код тот же), а в режиме редактирования в vis-е таблицы не видно.
Это баг или фишка?
фишка

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8102
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Как создать таблицу из объекта?

Beitrag von Bluefox » 19.10.2016, 13:33

andrey99986 hat geschrieben:Возможная причина в экранировании точки в имени объекта, как правильно экранировать?
В элементе html на код js в скрипте ошибка не выводится - таблица в редакторе не отображается, но в клиенте таблица генерируется и показывается.
Если перенести js код в Скрипты vis-а, то ошибка отображается, таблицы нет в редакторе и нет при просмотре.
Там, где ты редактируешь, bindings не работает.

webguru
Beiträge: 1
Registriert: 14.03.2018, 19:10
Kontaktdaten:

Re: Как создать таблицу из объекта?

Beitrag von webguru » 14.03.2018, 19:48

вот кстати классный материал по объектам http://webdiz.com.ua/glava-5-obekty-v-j ... rator-new/

Antworten