我正在使用jspdf插件将条形图导出为pdf。图表上的条形为白色,因此当我导出为pdf(作为png图像)时,这些条在pdf的透明背景上不可见。我在容器上添加了灰色背景色,以使白色条清晰可见。当我将图形导出为pdf时,它仍显示透明背景而不是灰色。有人可以告诉我我在想什么吗?
javascript:
$(document).ready(function(){
$('#hyppdf').click(function(){
var canvasImg = document.getElementById("myChart").toDataURL("image/png",
1.0);
var doc = new jsPDF();
doc.setFontSize(33);
doc.setFillColor(135, 124,45,0);
doc.addImage(canvasImg, 'png', 10, 10, 150, 100);
doc.save('sample.pdf');
})
var ctx = document.getElementById("myChart").getContext('2d');
var myChart = new Chart(ctx, {
type: 'bar',
data: {
labels: ["M", "T", "W", "T", "F", "S", "S"],
datasets: [{
label: 'apples',
data: [12, 19, 3, 17, 28, 24, 7],
backgroundColor: "rgba(255,255,255,1)"
}, {
label: 'oranges',
data: [30, 29, 5, 5, 20, 3, 10],
backgroundColor: "rgba(255,153,0,1)"
}]
}
});
})
Run Code Online (Sandbox Code Playgroud)
的HTML: …
https://plnkr.co/edit/RgGzgGkBPaxvKHNE688K?p=preview
在上面的示例中,我正在硬编码选择选项,并通过ng-init属性初始化为颜色“红色”。我想在页面加载时显示默认的颜色“红色”。
<select ng-model="mycolor" ng-init="mycolor = 'red'">
<option>red</option>
<option>green</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在控制器中,我将“ mycolor”更新为“绿色”,但由于ng-init属性,选择框仍显示“红色”。(我这样做是因为将从后端检索mycolor)
app.controller('MainCtrl', function($scope) {
$scope.mycolor = 'green';
});
Run Code Online (Sandbox Code Playgroud)
如何解决呢?简而言之,我想实现的是,我想在页面加载时的选择框中显示红色默认值,如果后端的mycolor发生任何更改,则应将其覆盖为新颜色。就我而言,它是绿色的。