Как я могу заполнить объект опций диаграммы CoreUI из C#?
Я пытаюсь использовать диаграмму CoreUI (см. Пример демонстрационной страницы CoreUI) в проекте Angular 6, используя данные из C# API.
Вот пример из примера панели инструментов CoreUI объекта параметров для диаграммы:
public lineChart1Options: any = {
tooltips: {
enabled: false,
custom: CustomTooltips
},
maintainAspectRatio: false,
scales: {
xAxes: [{
gridLines: {
color: 'transparent',
zeroLineColor: 'transparent'
},
ticks: {
fontSize: 2,
fontColor: 'transparent',
}
}],
yAxes: [{
display: false,
ticks: {
display: false,
min: 40 - 5,
max: 84 + 5,
}
}],
},
elements: {
line: {
borderWidth: 1
},
point: {
radius: 4,
hitRadius: 10,
hoverRadius: 4,
},
},
legend: {
display: false
}
};
Я создал загрузку классов C#, которые предоставляют все необходимые свойства, но при сериализации в JSON формат несколько отличается... В частности, в объекте всплывающих подсказок свойство custom: CustomTooltips
; CustomTooltips - это импорт из библиотеки CoreUI:
import { CustomTooltips } from '@coreui/coreui-plugin-chartjs-custom-tooltips';
Есть и другие ошибки: свойство backgroundColor (не показано в примере выше, но присутствует на экране примера) будет принимать функцию Javascript, например backgroundColor: getStyle('--primary'),
Наконец, есть пара свойств, которые позволяют анонимные функции. Вот еще один пример всплывающих подсказок:
tooltips: {
enabled: false,
custom: CustomTooltips,
intersect: true,
mode: 'index',
position: 'nearest',
callbacks: {
labelColor: function(tooltipItem, chart) {
return { backgroundColor: chart.data.datasets[tooltipItem.datasetIndex].borderColor }
}
}
},
В моем коде C# я в настоящее время храню их как строки, но, естественно, при сериализации они десериализуются как строки, что не сработает.
Можно ли сериализовать мои объекты C# таким образом, чтобы я мог просто вставить результат вызова API в вызов функции, такой как lineChart1Options: any = getChartOptionsObject();
?