2016-01-07 19 views
11

में थर्ड पार्टी जेएस मैं कोणीय और टाइपस्क्रिप्ट के लिए नया हूं, इसलिए यह शायद वास्तव में मूलभूत है।कोणीय 2 टाइपस्क्रिप्ट

मैं टेम्पलेट में चार्ट (चार्ट.जेएस का उपयोग करके) के साथ एक कोणीय 2 घटक बनाने की कोशिश कर रहा हूं।

मुझे एहसास है कि chart directive विकसित किया जा रहा है, जो विशेष रूप से चार्ट.जेएस का उपयोग करता है, लेकिन मैं यह समझना चाहता हूं कि यह कैसे करें, क्योंकि निस्संदेह यह एक उदाहरण में आ जाएगा जहां निर्देश उपलब्ध नहीं है।

अब तक मैं टेम्पलेट में इस सरल बात करने की कोशिश की है:

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

लेकिन इस जावास्क्रिप्ट यहाँ तक कि जब टेम्पलेट angular2 द्वारा लोड किया गया है नहीं चलता है।

मैं इसके बारे में कैसे जाऊं?

+0

आप क्या करने की कोशिश कर रहे हैं? और टाइपस्क्रिप्ट के साथ क्या करना है? आपका प्रश्न और कोड टाइपस्क्रिप्ट के बारे में कुछ भी नहीं दिखाता है .. – Pogrindis

+0

बस मैं टाइपरक्रिप्ट में अपना कोणीय 2 कोडिंग कर रहा हूं। मैंने सोचा कि यह प्रासंगिक था, क्योंकि मैं अपनी टाइपस्क्रिप्ट फ़ाइल (जैसे हैक/वर्कअराउंड के प्रकार) में chart.js जावास्क्रिप्ट नहीं लिख सकता – Dynde

+0

यदि आप टाइपस्क्रिप्ट लिख रहे हैं तो आपको ब्राउज़र के जावास्क्रिप्ट को संकलित करना होगा क्योंकि ब्राउज़र केवल जावास्क्रिप्ट को टाइपस्क्रिप्ट नहीं समझते हैं। – Jai

उत्तर

11

ठीक है - @Pogrindis की मदद से मुझे लगता है कि मुझे एक उपयोगी, बहुत जटिल समाधान नहीं मिला है।

बस here से chart.js के लिए टाइपिंग परिभाषा जोड़ने और एक कस्टम निर्देश में यह संदर्भित करके मैं अंत में यह है:

chart.directive.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); 
    } 
} 

app.component.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 { } 

और template.html:

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

आपके लिए धन्यवाद प्रश्न, यह वही था जो मैं खोज रहा था। मेरे पास एक सामान्य विचार है कि आपको निश्चित रूप से टाइप की आवश्यकता क्यों है, हालांकि मैं थोड़ा उलझन में हूं कि इसे कैसे कार्यान्वित किया जाए। 1. गिट क्लोन निश्चित रूप से टाइप किया गया, 2. फिर index.html में इसे '' संदर्भित किया गया है? आपके उत्तर पर थोड़ा और विस्तार कर सकता है। बाकी सब कुछ मैं समझता हूं, यहां तक ​​कि कोणीय 2 के लिए भी! – Chad

+2

ठीक है यह चाल /// <संदर्भ पथ = "../ निश्चित रूप से टाइप/चार्टजे/chart.d.ts" /> मुझे नहीं पता था कि Angular2 में एक कमांड या लाइन थी, मैंने सोचा कि यह एक टिप्पणी थी किसी कारण से लाइन। भले ही, सुनिश्चित करें कि यह जवाब काम कर रहा है, आपको चार्ट.जेएस और कोणीय 2 पर चलने वाला होगा! धन्यवाद @dynde – Chad

+0

@Dynde charts.js का कौन सा संस्करण आपने अपने उत्तर में उल्लिखित टाइपिंग के साथ उपयोग किया था? –

संबंधित मुद्दे