В настоящее время я беру код с массивного Laravel блейда и разделяю каждую переменную диаграммы и функции, на которые она опирается, в свой собственный файл javascript, который затем импортирую обратно в блейд;
<script type="module" src="/js/bundle/charts/submittedForms.js"></script>
и звоните как
submittedForms(ctx, mockData)
Моя проблема в настоящее время связана с первой из вспомогательных функций. Я не уверен, что я просто неправильно экспортирую переменную диаграммы и вспомогательную функцию из файла JS их контейнера;
let submittedForms = new Chart(ctx, {
//chart defined here
});
module.exports = {
changeSubmittedFormsData(
//function described here
},
submittedForms
};
Или сама функция просто ... сломана. Может быть, потому что я не передаю все необходимые методы, которые он использует? Или неправильно передать их? Сама функция,
function changeSubmittedFormsData(type, mockData, resetDropDown, resetDropDownButtonText, clearLegendSelections, addCustomLegend){
submittedFormsType=type
document.getElementById("SubmittedFormsDropdownButton").innerHTML= typeToMenuLabel(type)
submittedForms.data.labels = getLabels(mockData.submittedForms[submittedFormsType])
submittedForms.data.datasets.forEach((dataset) => {
dataset.data= getVals(mockData.submittedForms[submittedFormsType])
});
addCustomLegend("#location-legend",locationChart)
submittedForms.update();
resetDropDown()
resetDropDownButtonText()
$('#location-legend').off("click");
clearLegendSelections()
locationChart.data.datasets[0].backgroundColor= locationColors[locationType].slice()
addCustomLegend("#location-legend",locationChart)
locationChart.update()
}
и вот как я ее называю,
changeSubmittedFormsData(type, mockData, resetDropDown, resetDropDownButtonText, clearLegendSelections, addCustomLegend)
Ошибка, выдаваемая из блейд-файла: «changeSubmittedFormsData не определено».