我正在使用bridge.NET和Retyped,我将Chartist作为js库,并且还将Retyped.chartist作为Visual Studio中的nuget包(它将c#代码映射到js库)。
当我运行网站时,库已加载。但是我的代码不起作用:

chartist.Chartist2.Line.New(newUsersChart, new Chartist.IChartistData
        {
            labels = arr,
            series = arr2
        });


错误是未定义Chartist2。试图访问未定义的行。
我尝试查看重新输入的映射,但没有运气。在互联网上找不到关于这种特定情况的任何信息...

最佳答案

我安装了Bridge CLI,并使用以下命令创建了一个演示项目(在Mac上):

mkdir demo1
cd demo1
bridge new
bridge add package retyped.chartist
bridge build
bridge run
code .


code .的调用在Visual Studio Code中打开项目。

在Program.cs中,我使用了以下C#:

using System;
using Bridge;
using Retyped;
using static Retyped.chartist;

namespace Demo
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var data = new Chartist.IChartistData
            {
                labels = new es5.Array<string>("Mon", "Tue", "Wed", "Thu", "Fri"),
                series = new es5.Array<es5.Array<double>>(new es5.Array<double>(5, 2, 4, 2, 0 ))
            };

            var options = new Chartist.ILineChartOptions
            {
                width = 300,
                height = 200
            };

            Chartist2.Line.New(".ct-chart", data, options);
        }
    }
}


不是最干净或最明显的C#,但这是当前工作所需的。希望在将来的某个时候,Retyped可以改进C#以允许使用更自然和通用的C#类,例如匿名对象和基本C#数组。

该演示基于Chartist Getting Started文档中提供的示例。

项目bridge.json文件中还需要以下loader config部分:

"loader": {
  "manualLoading": "true",
  "skipManualVariables": "true"
}


然后,在/ dist文件夹中,创建了一个新的demo.html文件,并添加了以下内容:

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.8/chartist.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/chartist/0.9.8/chartist.js"></script>

    <script src="bridge.js"></script>
    <script src="demo1.js"></script>
  </head>
  <body>
    <div class="ct-chart ct-perfect-fourth"></div>
  </body>
</html>


重建项目。

如果返回浏览器并查看demo.html,则Chartist图表应正确呈现。

希望这可以帮助。

关于javascript - 重新输入chartist的用法不清楚。如何创建基本折线图?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54160876/

10-09 13:50