Задача: получить JSON, разобрать его и на основе полученных данных создать необходимое число виртуальных устройств, если они пока не существуют, заполнить их контролами, если они не существуют, или обновить данные контролов …
Проблема 1, если создать устройство без cells, то потом в него контролы не добавляются, хотя переменная содержит объект, с ошибкой - виртуальное устройство не существует (но не существует только cells в объекте, то есть даже текст ошибки неверен).
Это явно ошибка, так как должен создаться автоматически, если не существует (вероятно, при создании виртуального устройства, но и при добавлении контрола тоже, наверное …).
То есть код не работает (не добавляются контролы):
dv = defineVirtualDevice(dId, { title: wData[j].name });
Рабочий код:
dv = defineVirtualDevice(dId, { title: wData[j].name, cells: {} });
(детально не разбирался, ошибка не критическая, но раз уж создал тут тему …)
Проблема 2.
Виртуальное устройство нужно создать только тогда, когда его не существует. Виртуальные устройства могут добавляться динамически (удалять по идее тоже, но это “редчайшее” событие). И имя устройства на момент запуска скрипта не известно …
На сейчас работает такой код:
var dv = getDevice(dId);
if (!dv) {
dv = defineVirtualDevice(dId, { title: wData[j].name, cells: {} });
}
Но, при первом запуске возникает ошибка на первой строчке, что устройство не существует в логах. При этом метода проверки на существование без ошибки - нет, оборачивание в тру тоже не помогает - ошибка все равно возникает …
Как корректно проверить устройство на существование (имя устройства динамическое)?