Highcharts.numberFormat是指向Highcharts闭包中的本地函数的指针。 Highcharts在内部使用本地函数。怎么有人可以将原始源之外的这个(或者封闭内的任何其他本地函数,如dateFormat等)更改为插件或其他东西?
答案 0 :(得分:2)
我认为你的问题是改变内部函数在闭包中的行为。
就我理解高图的src而言,除非你编辑源文件,否则无法改变闭包内定义的内部函数(我不建议这样做在所有)。
这背后的原理是,库本身将这些函数用于内部目的,因此这些函数的更改将导致库的不良行为。
希望我有道理。
答案 1 :(得分:1)
您可以这样使用wrap()函数:
答案 2 :(得分:1)
以下是一种可以覆盖numberFormat:http://jsfiddle.net/4hdbY/2/
的方法(function (Highcharts, UNDEFINED)
{ "use strict";
if ( ! Highcharts )
{
return;
}
var numberFormat_orig = Highcharts.numberFormat;
Highcharts.numberFormat = function ( value )
{
// the original number formatter
// return numberFormat_orig.apply(this, arguments);
// your custom code
return '~' + Math.round(value);
};
}(Highcharts));
该解决方案是根据Highcharts-excension规则设计的。
我非常怀疑,您应该覆盖默认的数字格式化程序,相反,您也可以调用自定义函数,甚至将其绑定到Highcharts。根据显示的代码,我很容易做到这一点。 请参阅使用的代码:
tooltip: {
valueSuffix: '°C' ,
formatter: function() {
return '<b> Temperature: '+ Highcharts.numberFormat(this.y) + '°C</b><br/>'+ 'in Month: '+ this.x;
}
}
这可以很容易地修改,使用你自己的功能。