2013-02-15 41 views
7

Vui lòng tham khảo cuộc thảo luận Highcharts text labels for y-axis cách thiết lập nhãn trục y.Highcharts TypeScript, nhãn trục y

Tôi đã sử dụng https://github.com/borisyankov/DefinitelyTyped/blob/master/highcharts/highcharts.d.ts trong định nghĩa TypeScript của mình, nhưng tôi không thể tìm thấy cách xác định định dạng trục y.

Có ai từng thử trước đây không?

- Cập nhật -

mã JavaScript origianl tôi là

var yearChartOptions = { 
    yAxis: { 
     plotLines: [{ 
      label: { 
       formatter: function() { 
        return '$' + Highcharts.numberFormat(this.value/1000, 0) +'k '; 
       } 
      }, 
     }] 
    }, 
}; 

// Create the chart 
var yearChart = new Highcharts.Chart(yearChartOptions); 

Trong đoạn code tôi có một this.value đó là mỗi thanh (tôi đã sử dụng biểu đồ thanh) giá trị. Trong TypeScript (tôi chưa thay đổi để loại bỏ mảng).

var yearChartOptions: HighchartsOptions = {}; 
    yearChartOptions.chart = {}; 
    yearChartOptions.yAxis = []; 
    yearChartOptions.yAxis[0] = {}; 
    yearChartOptions.yAxis[0].plotLines = {}; 
    yearChartOptions.yAxis[0].plotLines.label = {}; 
    yearChartOptions.yAxis[0].plotLines.label.style.formatter(() => "$" + Highcharts.numberFormat(this.value/1000, 0) + "k "); 

    // Create the chart 
    var yearChart = new Highcharts.Chart(yearChartOptions); 

Đầu ra là

/* 
Compile Error. 
See error list for details 
D:/MyProject/Scripts/test.ts(36,56): The property 'formatter' does not exist on value of type 'HighchartsCSSObject' 
D:/MyProject/Scripts/test.ts(36,107): The property 'value' does not exist on value of type 'Dashboard' 
*/ 

Và nó sẽ không biên dịch.

+0

thể trùng lặp của [nhãn văn bản Highcharts cho trục y] (http://stackoverflow.com/questions/4987457/highcharts-text-labels-for-y- trục) –

+1

Tôi không nghĩ rằng đây là một bản sao. Các poster đang cố gắng sử dụng mã như trong câu trả lời đó, nhưng trình biên dịch TypeScript là từ chối nó. – Fenton

+0

@hardywang định nghĩa cập nhật có khắc phục được sự cố của bạn không? – Fenton

Trả lời

2

Cập nhật - Definitely Typed Highcharts definition hiện có bản sửa lỗi của tôi, vì vậy bạn có thể tải xuống phiên bản mới nhất và hy vọng nó sẽ giải quyết được sự cố của bạn.

Định nghĩa loại cho Highcharts cho thấy bạn cần phải chuyển mảng amd tùy chọn sang yAxis. Điều này biên dịch trong TypeScript.

var chart = new Highcharts.Chart({ 
    yAxis: [{ 
     labels: { 
      formatter: function(): string { 
       return 'My Label'; 
      } 
     } 
    }] 
}); 

Tuy nhiên, tôi không chắc chắn điều này khớp với the documentation, which suggests you pass the yAxis options as an object, không phải là một mảng của nhiều đối tượng này. Điều này cũng có ý nghĩa từ quan điểm rằng bạn có một yAxis duy nhất.

Để đạt được những gì tôi tin là phiên bản có giá trị (tức là không mảng):

/// <reference path="highchart.d.ts" /> 

var yearChartOptions: HighchartsOptions = { 
    yAxis: { 
     plotLines: { 
      label: { 
       formatter: function(): string { 
        return '$' + Highcharts.numberFormat(this.value/1000, 0) + 'k '; 
       } 
      }, 
     } 
    } 
}; 


// Create the chart 
var yearChart = new Highcharts.Chart(yearChartOptions); 

Bạn có thể điều chỉnh highchart.d.ts bạn nộp ở đây ...

interface HighchartsOptions { 
    chart?: HighchartsChartOptions; 
    // others... 
    yAxis?: HighchartsAxisOptions; // <-- remove the [] from this line 
} 

Tôi đã gửi một yêu cầu kéo đến Definitely Typed để sửa lỗi này.

dụ Hoàn toàn làm việc dựa trên mã của bạn:

+0

Vẫn còn lỗi biên dịch, vì 'yearChartOptions.yAxis.plotLines.label.style.formatter (() =>" $ "+ Highcharts.numberFormat (this.value/1000, 0) +" k "); tìm thấy và từ khóa 'this' này không được nhận dạng. Http://stackoverflow.com/questions/4987457/highcharts-text-labels-for-y-axis và tài liệu http://api.highcharts.com/highcharts#yAxis.labels.formatter – hardywang

+0

Tôi đã cập nhật ví dụ dưới các 'Để đạt được những gì tôi tin là phiên bản hợp lệ' bình luận. – Fenton

+0

Cảm ơn, tôi đã thử cú pháp của bạn để khởi tạo đối tượng trong đối tượng và nó hoạt động. Tôi không chắc chắn những gì là sai với cách của tôi, đối tượng instantiate, sau đó thiết lập các thuộc tính của đối tượng nhưng nó không hoạt động. – hardywang

Các vấn đề liên quan