Ошибка:Uncaught TypeError: Не удается прочитать свойство «метки» неопределенных, когда нет данных в графах
morris.min.js:6 Uncaught TypeError: Cannot read property 'label' of undefined
at d.b.Bar.d.hoverContentForRow (morris.min.js:6)
at d.b.Bar.d.onHoverMove (morris.min.js:6)
at morris.min.js:6
at d.b.EventEmitter.a.fire (morris.min.js:6)
at HTMLDivElement.<anonymous> (morris.min.js:6)
at HTMLDivElement.dispatch (jquery.min.js?v=1.6.10:3)
at HTMLDivElement.r.handle (jquery.min.js?v=1.6.10:3)
- ошибки появляются, когда данные в графах равна нулю.
- , как я могу решить эту проблему
ошибка гистограмма
код
расслоения плотнойvar httpRequest = $http({
method: 'GET',
url: root_url,
}).success(function(json3, status) {
$scope.res3 = json3.data;
Morris.Bar({
element: 'chart_priority',
data: json3.data, // use returned data to plot the graph,
xkey: 'priority',
ykeys: ['value'],
labels: ['Logs'],
hideHover: 'auto',
resize: true,
//
});
});
Моррис JS, где ошибки были выброшены
d.prototype.hoverContentForRow = function(a) {
var b, c, d, e, f, g, h, i;
for (d = this.data[a],
b = "<div class='morris-hover-row-label'>" + d.label + "</div>",
i = d.y,
c = g = 0,
h = i.length; h > g; c = ++g)
f = i[c],
b += "<div class='morris-hover-point' style='color: " + this.colorFor(d, c, "label") + "'>\n " + this.options.labels[c] + ":\n " + this.yLabelFormat(f) + "\n</div>";
return "function" == typeof this.options.hoverCallback && (b = this.options.hoverCallback(a, this.options, b, d.src)),
e = this.left + (a + .5) * this.width/this.data.length,
[b, e]
}
,
решения Мне нужно, как решить проблему с неопределенной меткой в morris js.
когда данные для определенного вызова ajax равны нулю.
решение я также попытался
There are few more things here.
Позволяет взять под хронологию событий.
Первый раз Morris.Line визуализируются с надлежащей .data через AJAX Второй раз, когда объект данных пуст, диаграмма полностью не-годные к употреблению третий раз, когда мы оказываем на ту же графику с данными через AJAX. Ничего не произошло. Как вы уже сказали, я могу справиться с этим в пользовательском интерфейсе. Каждый, кто реализует или сталкивается с такой ситуацией, должен сам реализовать это сообщение заполнителя. Вместо этого, если мы сможем справиться с этим в самой Библиотеке, каждый может получить от нее выгоду, а библиотека будет более защитной.
Едет с заполнителем подходом
Первого раза, Morris.Line визуализируется с данными из AJAX во второй раз, данные пуст. Вместо вызова .setData() скрыть элемент div, который отображается/управляется Morris и показывает сообщение-заполнитель с использованием span. В третий раз, когда данные верны, удалите диапазон и повторно отрисуйте Morris.Line Я бы рекомендовал реализовать эту функцию в самой библиотеке, чтобы библиотека была более защищена от таких проблем времени выполнения.
Какой версии Морриса вы используете? Эта проблема была решена в последней версии 0.51 (cf [Пустые данные заставляют диаграмму разбиваться на # 142] (https://github.com/morrisjs/morris.js/issues/142)). – krlzlx