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 ввести что-то текстовое и передать его значением. Так-то согласен, с точки зрения безопасности.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.