gpt4 book ai didi

angular - Angular2 typescript 中的第三方 JS

转载 作者:太空狗 更新时间:2023-10-29 17:05:10 25 4
gpt4 key购买 nike

我是 angular 和 typescript 的新手,所以这可能是非常基础的。

我正在尝试在模板中制作一个带有图表(使用 Chart.js)的 angular2 组件。

我意识到有一个 chart directive正在开发中,专门使用 Chart.JS,但我想了解如何执行此操作,因为它无疑会在指令不可用的情况下出现。

到目前为止,我已经尝试在模板中做这件简单的事情:

<canvas id="chart"></canvas>
<script>
$(function () {
//instantiate chart on $("#chart")
});
</script>

但是当模板已经被 angular2 加载时,这个 javascript 甚至不会运行。

我该怎么做?

最佳答案

好的 - 在@Pogrindis 的帮助下,我想我找到了一个可用的、不太复杂的解决方案。

通过简单地添加来自 here 的 chart.js 的类型定义并在自定义指令中引用它我终于有了这个:

图表指令.ts

/// <reference path="../../typings/chartjs/chart.d.ts" />

import {Directive, ElementRef, Renderer, Input} from 'angular2/core';
@Directive({
selector: '[chart]'
})
export class ChartDirective {
constructor(el: ElementRef, renderer: Renderer) {
//el.nativeElement.style.backgroundColor = 'yellow';
var data = {
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: "My First dataset",
fillColor: "rgba(220,220,220,0.2)",
strokeColor: "rgba(220,220,220,1)",
pointColor: "rgba(220,220,220,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(220,220,220,1)",
data: [65, 59, 80, 81, 56, 55, 40]
},
{
label: "My Second dataset",
fillColor: "rgba(151,187,205,0.2)",
strokeColor: "rgba(151,187,205,1)",
pointColor: "rgba(151,187,205,1)",
pointStrokeColor: "#fff",
pointHighlightFill: "#fff",
pointHighlightStroke: "rgba(151,187,205,1)",
data: [28, 48, 40, 19, 86, 27, 90]
}
]
};
var ctx: any = el.nativeElement.getContext("2d");
var lineChart = new Chart(ctx);
////var lineChartOptions = areaChartOptions;
////lineChartOptions.datasetFill = false;
lineChart.Line(data);
}
}

应用程序组件.ts

import {Component} from 'angular2/core';
import {ChartDirective} from './chart.directive';

@Component({
directives: [ChartDirective],
selector: 'chart-graph',
templateUrl: '/js/app/template.html'
})

export class AppComponent { }

和模板.html:

<canvas id="myChart" chart width="400" height="400"></canvas>

关于angular - Angular2 typescript 中的第三方 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34653045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com