我正在使用bridge.NET和Retyped,我将Chartist作为js库,并且还将Retyped.chartist作为Visual Studio中的nuget包(这将c#代码映射到js lib)。 当我运行网站时,库已加载。但是我的代码不起作用:
chartist.Chartist2.Line.New(newUsersChart, new Chartist.IChartistData
{
labels = arr,
series = arr2
});
错误是Chartist2未定义。试图访问未定义的行。 我尝试查看重新输入的映射,但没有运气。在互联网上找不到关于这种特定情况的任何信息...
答案 0 :(得分:2)
我已安装 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
配置部分:
"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图表应正确呈现。
希望这会有所帮助。