На картах Google я поставил несколько маркеров, где я разместил датчики контроля качества воздуха.Теперь, когда я хочу щелкнуть маркер, он показывает мне данные датчиков на графиках, для этого я использую Dash Plotly для рисования графиков.И чтобы показать графики при нажатии, я отправляю ajax-запрос в django views.py, где функция dash_view () возвращает html fil=(chart.html)
, используя функцию jquery. Я помещаю код chart.html
в div id=#chart_div
, который находится в index.html
.Теперь проблема в том, что когда я впервые нажимаю на маркер, он показывает только то, что графики загружаются с этой
Uncaught ReferenceError: DashRenderer не определен
ошибка в консоли, когдаЯ нажимаю на маркер только несколько раз, после чего отображаются графики, и после двойного или тройного щелчка один щелчок также начинает работать.И когда я использую {% plotly_direct name="AQI" %}
для рендеринга графика в шаблоне, требуется несколько кликов для отображения графиков, а когда я использую {% plotly_app name="AQI" %}
, он работает одним щелчком мыши, но стилизация всего графика удаляется. Это то, что я получаю , когда я использую {% plotly_direct name="AQI" %}
, и Это то, что я получаю , когда я использую {% plotly_app name="AQI" %}
.Стиль удаляется, когда я использую {% plotly_app name="AQI" %}
#############views.py#############
@csrf_exempt
def dash_view(request):
return render (request,'map/chart.html')
#############ajax_call on click marker##############
function ajax() {
var json = {};
// json['a'] = 1;
$.ajax({
url: "dash",
type: "POST",
data:json,
dataType: "html",
success : function(res)
{
$('#chart_div').html(res);
console.log(res);
}
});
}
#############chart.html#############
{% load static %}
{% block content%}
<div class="col-md-12 col-sm-12 col-xs-12 no-space" style="border: 2px black solid;">
<div class="side-info">
{% load plotly_dash %}
<div id="chart_div"class="col-md-12 col-sm-12 col-xs-12 no-space fa-pull-right">
{%plotly_direct name="AQI"%}
{% plotly_footer %}
</div>
</div>
</div>
{% endblock%}
#############index.html#############
<div class="container-fluid">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12 no-space " >
<div id="map"></div>
</div>
<div id="chart_div" class="col-md-12 col-sm-12 col-xs-12 no-space" style="border: 2px black solid;">
</div>
</div>
</div>