ng-highcharts 的响应行为,编译后的 ng-click 加载时隐藏了 xAxis 标签
Responsive behaviour for ng-highcharts with compiled ng-click on xAxis labels hidden on load
我在选项卡中有一些 ng-highcharts,页面上的折叠部分也根据下拉选择显示。所有图表都需要适合其容器的大小(容器大小不同)。
其中一个图表上的 xAxis 标签添加了一个 ng-click,它与超时一起工作并在加载时编译,但是当图表在调整大小时重新绘制时,这些标签会丢失。
需要全宽图表以及加载时隐藏的所有图表的响应行为,以及在调整大小后保持 ng-click。
jQuery NOT 用于该项目,因此寻找 angular / 本地 javascript 解决方案。
在下面处理 fiddle 当前问题的示例。
http://jsfiddle.net/7efavzh2/2/
以下将更新图表的宽度,但会破坏所有已编译的 ng-click 标签。
$scope.collapseClick = function() {
console.log('collapse click');
//$scope.projectionChartConfig.options.chart.width = null;
}
向 window 添加了调整大小事件。在显示图表或调整大小时更新图表的宽度参数。还在超时内编译以在需要时保持 ng-click 标签。
$scope.collapseClick = function() {
console.log('collapse click');
$scope.projectionChartConfig.options.chart.width = null;
$timeout( function() {
var element = document.getElementById("chart1");
console.log(element);
$compile(element)($scope)
});
}
// Listen to window resize and update width.
$scope.$on('window.resize', function() {
console.log('resize');
$timeout( function() {
var element = document.getElementById("chart1");
console.log(element);
$compile(element)($scope)
});
});
我在选项卡中有一些 ng-highcharts,页面上的折叠部分也根据下拉选择显示。所有图表都需要适合其容器的大小(容器大小不同)。
其中一个图表上的 xAxis 标签添加了一个 ng-click,它与超时一起工作并在加载时编译,但是当图表在调整大小时重新绘制时,这些标签会丢失。
需要全宽图表以及加载时隐藏的所有图表的响应行为,以及在调整大小后保持 ng-click。
jQuery NOT 用于该项目,因此寻找 angular / 本地 javascript 解决方案。
在下面处理 fiddle 当前问题的示例。
http://jsfiddle.net/7efavzh2/2/
以下将更新图表的宽度,但会破坏所有已编译的 ng-click 标签。
$scope.collapseClick = function() {
console.log('collapse click');
//$scope.projectionChartConfig.options.chart.width = null;
}
向 window 添加了调整大小事件。在显示图表或调整大小时更新图表的宽度参数。还在超时内编译以在需要时保持 ng-click 标签。
$scope.collapseClick = function() {
console.log('collapse click');
$scope.projectionChartConfig.options.chart.width = null;
$timeout( function() {
var element = document.getElementById("chart1");
console.log(element);
$compile(element)($scope)
});
}
// Listen to window resize and update width.
$scope.$on('window.resize', function() {
console.log('resize');
$timeout( function() {
var element = document.getElementById("chart1");
console.log(element);
$compile(element)($scope)
});
});