Как я могу заполнить объект опций диаграммы 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();?

0 ответов

Другие вопросы по тегам