Charts Yii2 ChartJs在第页遇到错误时抛出非数值
我已经通过composer在我的yii2项目中安装了一个,安装后,我正在尝试tun示例,如文档中所示Charts Yii2 ChartJs在第页遇到错误时抛出非数值,charts,yii2,yii2-advanced-app,Charts,Yii2,Yii2 Advanced App,我已经通过composer在我的yii2项目中安装了一个,安装后,我正在尝试tun示例,如文档中所示 <?php ChartJs::widget([ 'type' => 'pie', 'id' => 'structurePie', 'options' => [ 'height' => 200, 'width' => 400, ], 'data' => [ 'radius' => "90%",
<?php
ChartJs::widget([
'type' => 'pie',
'id' => 'structurePie',
'options' => [
'height' => 200,
'width' => 400,
],
'data' => [
'radius' => "90%",
'labels' => ['Label 1', 'Label 2', 'Label 3'], // Your labels
'datasets' => [
[
'data' => ['35.6', '17.5', '46.9'], // Your dataset
'label' => '',
'backgroundColor' => [
'#ADC3FF',
'#FF9A9A',
'rgba(190, 124, 145, 0.8)'
],
'borderColor' => [
'#fff',
'#fff',
'#fff'
],
'borderWidth' => 1,
'hoverBorderColor'=>["#999","#999","#999"],
]
]
],
'clientOptions' => [
'legend' => [
'display' => false,
'position' => 'bottom',
'labels' => [
'fontSize' => 14,
'fontColor' => "#425062",
]
],
'tooltips' => [
'enabled' => true,
'intersect' => true
],
'hover' => [
'mode' => false
],
'maintainAspectRatio' => false,
],
'plugins' =>
new \yii\web\JsExpression('
[{
afterDatasetsDraw: function(chart, easing) {
var ctx = chart.ctx;
chart.data.datasets.forEach(function (dataset, i) {
var meta = chart.getDatasetMeta(i);
if (!meta.hidden) {
meta.data.forEach(function(element, index) {
// Draw the text in black, with the specified font
ctx.fillStyle = rgb(0, 0, 0);
var fontSize = 16;
var fontStyle = normal;
var fontFamily = Helvetica;
ctx.font = Chart.helpers.fontString(fontSize, fontStyle, fontFamily);
// Just naively convert to string for now
var dataString = dataset.data[index].toString()+'%';
// Make sure alignment settings are correct
ctx.textAlign = center;
ctx.textBaseline = middle;
var padding = 5;
var position = element.tooltipPosition();
ctx.fillText(dataString, position.x, position.y - (fontSize / 2) - padding);
});
}
});
}
}]')
])
?>
但是当我刷新我的页面时,我得到了这个错误
遇到非数字值
错误发生在var dataString=dataset.data[index].toString+'%'处
我一直试图解决这个问题,但什么也找不到
非常感谢您的帮助。因为您没有正确地转义引号,所以需要转义语句中的单引号
var dataString = dataset.data[index].toString()+' % ';
因为新的yii\db\表达式中的外部引号使用单引号来包装整个javascript,所以将行更改为
var dataString = dataset.data[index].toString()+\' % \';
谢谢你的帮助。虽然这给了我另一个问题。我稍后会把问题贴出来