SVG панель виснет

Здравствуйте уважаемые.

Начал делать SVG панель для 1 этажа. Индикаторов много, как для режима “Чтение” так и для “Видимость”. Настроил правила отображения для пары десятков элементов и начались странности.

Вначале, стал пропадать статус администратора. Потом дашборд вообще перестал отвечать. Обновляешь страницу, в правом верхнем углу уровень доступа “Пользователь” и дашборд не работает. Часть индикаторов отобразил, часть перепутал значения, часть вообще не скрыл (правила не сработали).

Куда смотреть? Чем поможете?

Эта дичь повторяется стабильно. Стоит только условий отображения настроить больше 10 (точно не считал).

Вот JSON
1_fl_dashboard.json (68.1 КБ)

Вот сам SVG
1этаж (основа)

Срочно выручайте! Нужно исправлять. Блокирует внедрение всего wirenboard в более крупных проектах.

Люди, куда смотреть? Как решать проблему???

Добрый день.
Хочу уточнить, как воспроизвести?
Загрузил svg, вставил json.

Здравствуйте.

Не думаю, что просто мертвый SVG и настроенные правила, без реальных MQTT топиков и их обработки, смогут воспроизвести проблему.

Попробуйте так. Настройте для 2-3х десятков произвольных элементов условия видимости в зависимости от температуры CPU равной -1. Или в текст выводите такое значение:

(val=='XXX') ? '----' : '---'

для канала “Rule debugging”

Примеры возьмите из моего JSON файла. Главное, что-бы сигналы из MQTT реально обрабатывались в SVG панели.

Пока вы занимаетесь “воспроизведением”, где смотреть логи?!? Прошло уже 3 дня… Такими темпами, клиент выкинет всё ваше поделие и купит KNX :frowning:

Ок, пробую.

Не совсем понятно, логи чего? Контроллер - самый обыкновенный компьютер, точно такой же как тот за которым работаем, логи - в веб-интерфейсе либо, что удобнее journalctl.

Из которых два - выходные.

Не совсем понятно, логи чего?

Вы правы. Совсем забыл - где front-end разработчики, а где логи. Это же не server side :frowning:

Итак, описание стенда:

Правило:

//TestBlue01.js
defineVirtualDevice("test_blue_01", {
  title: "TestBlue01",
  cells: {
    "visible": {
      type: "switch",
      value: false,
      readonly: false,
	  forceDefault: false
    },
  }
});

test_interval = setInterval(function () {
  dev["test_blue_01/visible"] = !dev["test_blue_01/visible"];
  n = n+1;
  if (n >= 20000){
   clearInterval(test_interval);
  }
}, 1000); 

Svg:
TestBlue01
Ну и json от svg:

[
  {
    "id": "f18700165660",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700181682",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700184d8e",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700187a95",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870018ad41",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870018d9fd",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700190ad2",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700193eae",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700196e0e",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18700199199",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035ce439",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035d5a5f",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035d7eed",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035dbbe3",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035dfa14",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035e2f84",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035e259c",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035e9dd9",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035ec1fe",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035eedf4",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035d3ff4",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035f3523",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035f5741",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035f85a2",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035fae9e",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187035fd3c1",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870360122a",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870360fa02",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18703611e70",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18703613fa5",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870361602f",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870361942c",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870361b982",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870361e25b",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18703621045",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187036240c2",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f18703626bba",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f187036291cd",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870362b731",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  },
  {
    "id": "f1870362e0ff",
    "read": {
      "enable": false,
      "channel": null,
      "value": "val"
    },
    "write": {
      "enable": false,
      "channel": null,
      "value": {
        "on": 1,
        "off": 0
      }
    },
    "visible": {
      "enable": true,
      "channel": "test_blue_01/visible",
      "condition": "==",
      "value": "1"
    },
    "style": {
      "enable": false,
      "channel": null,
      "value": null
    }
  }
]

Работало 20к раз, успешно, сейчас запустил снова.

Ничего не понял.
Зачем воспроизводить на плюшевом (виртуальном) девайсе и примитивной картинке?
Возьмите мой SVG и используйте настоящие устройства. Так похоже эту фичу и тестировали :slight_smile: Теперь её так же и воспроизвести пытаются :)))

Как лучше поступить - мне видео снять, как по шагам что делаю и как оно перестаёт работать? Или логи смотреть? Предложенный вариант (попытка воспроизвести) - это не рабочая схема. Проблему так не выявить.

Какая именно картинка - совершенно все равно, ее отображает браузер.
Попрбовал заменить в вашем svg “wb-m1w2_113/External Sensor 1” на актуальный - “hwmon/CPU Temperature”, board temperature.
Работает, в соотвествии с ожиданием.

Видео - совершенно бесполезно. Гораздо лучше посмотрите как в браузере выполняется интерфейс.

А какой считаете способ верным?
Проблема должна воспроизводиться, всегда. Дайте синтетический способ воспроизвести - с удовольствием сделаю.

Предлагаю созвониться (Zoom, Dion, …) и в моём браузере посмотреть вместе. Когда вам будет удобно?

вт, 21 мар. 2023 г., 13:36 Андрей Радионов через Wiren Board Support <info@wirenboard.com>:

В браузере сплошным потоком идут такие ошибки (в JavaScript)

Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$digest @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$digest @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$digest @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.036}],[{"msg":"fn: i","newVal":231.036,"oldVal":" В"}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.036%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.036%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":" В","oldVal":231.09}],[{"msg":"fn: i","newVal":231.09,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.09}],[{"msg":"fn: i","newVal":231.09,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.09}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.09%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.09%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":" В","oldVal":231.09}],[{"msg":"fn: i","newVal":231.09,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.09}],[{"msg":"fn: i","newVal":231.09,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":231.09}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.09%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A231.09%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A231.09%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$digest @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":232.487}],[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":232.487}],[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A232.487%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A232.487%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
$apply @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
completeTask @ libs.9e0e3e44d1e9f1e931ec.js:77
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:77
setTimeout (async)
o.defer @ libs.9e0e3e44d1e9f1e931ec.js:77
a @ libs.9e0e3e44d1e9f1e931ec.js:77
v.onMessageArrived @ main.9e0e3e44d1e9f1e931ec.js:1
b._receiveMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._receivePublish @ libs.9e0e3e44d1e9f1e931ec.js:39
b._handleMessage @ libs.9e0e3e44d1e9f1e931ec.js:39
b._on_socket_message @ libs.9e0e3e44d1e9f1e931ec.js:39
(anonymous) @ libs.9e0e3e44d1e9f1e931ec.js:39
libs.9e0e3e44d1e9f1e931ec.js:77 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":232.487}],[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}],[{"msg":"fn: i","newVal":" В","oldVal":232.487}],[{"msg":"fn: i","newVal":232.487,"oldVal":" В"}]]
https://errors.angularjs.org/1.8.3/$rootScope/infdig?p0=10&p1=%5B%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A232.487%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A%22%20%D0%92%22%2C%22oldVal%22%3A232.487%7D%5D%2C%5B%7B%22msg%22%3A%22fn%3A%20i%22%2C%22newVal%22%3A232.487%2C%22oldVal%22%3A%22%20%D0%92%22%7D%5D%5D
    at libs.9e0e3e44d1e9f1e931ec.js:77:833
    at c.$digest (libs.9e0e3e44d1e9f1e931ec.js:77:101515)
    at c.$apply (libs.9e0e3e44d1e9f1e931ec.js:77:103063)
    at libs.9e0e3e44d1e9f1e931ec.js:77:125693
    at Object.completeTask (libs.9e0e3e44d1e9f1e931ec.js:77:123654)
    at libs.9e0e3e44d1e9f1e931ec.js:77:34513

Мне удалось просто завесить дашборд (но не повторить свой кейс). Достаточно неверное выражение в поле с val, для режима чтения.
Например:

val = 'XXX'

Вопрос снимается.

Просто отсутствует защита от рукож@пых пользователей. Любая ошибка в выражениях приводит к непредсказуемому поведению всего WEB UI !!!

Примеры:

val = 'XXX'
val.toFixed()
(val=='X') ? "1":"2'

и т.д.

Вы бы хоть эвалюировали выражения, перед использованием.

1 Like

svg только появился… Сейчас как раз начинается цикл его улучшения, учтем. Но нужно ли именно проверять типы?

Проверять нужно всё, что не позволит выполнить JavaScript Injection.

Хм. Но сейчас ведь нет способа в поле svg ввести что-то текстовое и передать его значением. Так-то согласен, с точки зрения безопасности.