如何将 javascript 回调传递给 Laravel-Charts 中的 PHP 结构
How can I pass a javascript callback to a PHP construct in Laravel-Charts
我在 Laravel 7 中使用 laravel-charts 包。我将 chartjs 的数据标签插件添加到图表对象中,如下所示:
$this->options = [
'responsive' => true,
'maintainAspectRatio' => false,
'legend' => [ 'display' => false ],
'plugins' => [
'datalabels' => [
'color' => 'white',
'weight' => 'bold',
'font' => ['size' => 14],
'formatter' => ''
]
]
在另一个版本中,当我使用 vue.js 和 vue-chartjs 时,我可以使用这个来格式化标签:
plugins: {
datalabels: {
formatter: function(value, context) {
return '$' + Number(value).toLocaleString();
},
}
}
如您所见,javascript 作为 PHP 数组传递。我不知道如何将该格式化程序传递给我的 laravel-charts 版本。
非常感谢任何帮助。
Laravel Charts plugins
option has to be a string that's representing a plain Javascript object. I couldn't find any actual documentation, but you can read a related issue here "How to use ChartsJs plugin Datalabels js?".
你必须这样传递:
$chart = new ChartTest;
$chart->labels(['One Thousand', 'Two Thousand', 'Three Thousand', 'Four Thousand']);
$chart->dataset('My dataset', 'bar', [1000, 2000, 3000, 4000]);
$chart->options([
// The whole plugins element is a string representing a JS object with plugins options
'plugins' => "{
datalabels: {
color: 'red',
font: {
size: 14,
weight: 'bold'
},
formatter: (value) => `\$${value}`
}
}"
]);
return view('chart', ['chart' => $chart]);
将应用 chartjs-plugin-datalabels 个选项:
PS:weight
属性 必须在 font
对象内部,就像我的例子一样。
我在 Laravel 7 中使用 laravel-charts 包。我将 chartjs 的数据标签插件添加到图表对象中,如下所示:
$this->options = [
'responsive' => true,
'maintainAspectRatio' => false,
'legend' => [ 'display' => false ],
'plugins' => [
'datalabels' => [
'color' => 'white',
'weight' => 'bold',
'font' => ['size' => 14],
'formatter' => ''
]
]
在另一个版本中,当我使用 vue.js 和 vue-chartjs 时,我可以使用这个来格式化标签:
plugins: {
datalabels: {
formatter: function(value, context) {
return '$' + Number(value).toLocaleString();
},
}
}
如您所见,javascript 作为 PHP 数组传递。我不知道如何将该格式化程序传递给我的 laravel-charts 版本。
非常感谢任何帮助。
Laravel Charts plugins
option has to be a string that's representing a plain Javascript object. I couldn't find any actual documentation, but you can read a related issue here "How to use ChartsJs plugin Datalabels js?".
你必须这样传递:
$chart = new ChartTest;
$chart->labels(['One Thousand', 'Two Thousand', 'Three Thousand', 'Four Thousand']);
$chart->dataset('My dataset', 'bar', [1000, 2000, 3000, 4000]);
$chart->options([
// The whole plugins element is a string representing a JS object with plugins options
'plugins' => "{
datalabels: {
color: 'red',
font: {
size: 14,
weight: 'bold'
},
formatter: (value) => `\$${value}`
}
}"
]);
return view('chart', ['chart' => $chart]);
将应用 chartjs-plugin-datalabels 个选项:
PS:weight
属性 必须在 font
对象内部,就像我的例子一样。