Я создаю график, используя Rickshaw JS. Для этого я создал функцию, которая при вызове отображает график. Проблема, с которой я столкнулся, - это когда вы вызываете внутри тегов скрипта, функция делает все отлично, как я ожидаю. Однако при вызове из функции успеха вызова AJAX оси не отображаются.Ошибка рендеринга оси Rixshaw JS при вызове в функции успеха AJAX
Соответствующий фрагмент кода:
<script>
function ProbabilityPlot(a) {
var graph = new Rickshaw.Graph({
...
});
graph.render();
var xAxis = new Rickshaw.Graph.Axis.X({
...
});
xAxis.render();
var yAxis = new Rickshaw.Graph.Axis.Y({
...
});
yAxis.render();
};
$.ajax({
url: plotURl,
dataType: 'json',
cache: false,
success: function(data) {
ProbabilityPlot([ {{plot_data}} ]); <-- axes do NOT work
}
});
ProbabilityPlot([ {{plot_data}} ]); <-- eveything works perfectly
</script>
я могу убедиться, что параметры, передаваемые на функции одинаковы в обоих случаях.
В чем смысл '.bind (this)' в вашем коде? Вы ничего не связываете функциями обратного вызова. Также ваши скобки не совпадают. Исправьте отступ вашего кода, сопоставьте свои фигурные скобки и объясните, что вы ожидаете от «этого» в ваших обратных вызовах. – Tomalak
В настоящее время я получаю статические данные, которые представлены _ {{plot_data}} _. Теперь я перехожу на AJAX для получения асинхронных данных. Я использовал bind (this) для присоединения этой функции к элементу DOM диаграммы, который я создаю. Я обновил код в вопросе дальше. – Shubham
Я удалил _bind (this) _ из исходного фрагмента, поскольку я чувствую, что это не имеет отношения к проблеме, с которой я столкнулся. – Shubham