私はいくつかのタイプのハイチャートで作業しましたが、水平棒グラフは特殊なようです - グラフの幅を画面サイズに合わせるのは苦労しました。問題を説明するために、jsfiddleを作成しました。既定では、利用可能な幅全体ではなく固定サイズ600pxです。私はそれに応じてさまざまな方法で幅を調整しようとしましたが、どれも完全には動作しません。 1つの方法は、$ window.onresizeをコードのように使用することですが、動作しません。しかし、同じコードを実行するResizeボタンを置くと、機能します。どうして?highcharts-ng水平棒グラフの反応性を高める方法
HTML:
<div ng-app="myapp">
<div ng-controller="myctrl">
<input ng-model="chart.title.text">
<button ng-click="resize()">Resize</button>
<highchart id="chart1" series="chart.series" title="chart.title" options="chart.options"></highchart>
</div>
</div>
JS:window.onresize
で
var myapp = angular.module('myapp', ["highcharts-ng"]);
myapp.controller('myctrl', function($scope, $window) {
$scope.resize = function() {
$scope.chart.options.chart.width = $window.innerWidth;
}
$window.onresize = function() {
$scope.chart.options.chart.width = $window.innerWidth;
}
$scope.chart = {
options: {
chart: {
type: 'bar'
}
},
series: [{
data: [10, 15, 12, 8, 7]
}],
title: {
text: 'Hello'
}
}
});
は$ダイジェスト()呼び出しの先端いただき、誠にありがとうございます。奇妙なことに、これは私がコントローラーで使っている限り動作します。しかし、それを指示に入れると、動作が停止します。私はhttp://jsfiddle.net/miliu99/vzk1533y/で別のjsfiddleを作成しようとしましたが、jsfiddleで動作させることができませんでした。しかし、それは私の指示の基本的な構造を含んでいます。この問題を解決するためのもう一つのヒントを教えてください。 – newman