以下代码,本来打算用$scope.chartdataarray, 和$scope.chartconfigarray两个数组
绑定到多个line graphs上(ng-repeat, chartconfig代表配置,chartdata代表数
据)。 这样,html template可以被多次复用。
后来发现,跑着跑着始终都会浏览器页面崩溃。 改成不用数组的方式,倒是没崩溃。
这个问题花了一周工作时间才定位到,谁能说说原因? 是angular的问题,还是用的插
件有问题(angular-echarts是对baidu echarts的封装)。
谢谢。
注释内的代码为:用数组的情况。 注释下面为不用数组的情况。
-----------------------------------------------------------
angular.module('nmsRealtime', ['angular-echarts'])
.controller('nmsRealtimeCtrl',
['$scope', '$interval', 'nmsRealtimeService',
function($scope, $interval, nmsRealtimeService) {
/*
$scope.chartconfigarray = [
compose_config_data('test', 'some test1..'),
compose_config_data('test', 'some test2..')
];
*/
$scope.chartconfig1 = compose_config_data('test', 'some tests..');
$scope.chartconfig2 = compose_config_data('test', 'some tests..');
$interval(function() {
// $scope.chartdataarray = null;
$scope.chartdata1 = null;
$scope.chartdata2 = null;
var rx_dp_array = [];
var tx_dp_array = [];
for (var i = 0; i < DP_SIZE; ++i) {
rx_dp_array.push({x: i, y: Math.random() * 300 });
tx_dp_array.push({x: i, y: Math.random() * 300 });
}
/*
$scope.chartdataarray = [
[{name: 'rxpkts/s', datapoints: rx_dp_array }],
[{name: 'txpkts/s', datapoints: tx_dp_array }]
];
*/
$scope.chartdata1 =
[{name: 'rxpkts/s', datapoints: rx_dp_array }];
$scope.chartdata2 =
[{name: 'txpkts/s', datapoints: tx_dp_array }];
}, 20 * 1000);
}])
-----------------------------------------
<ul class="runchart-list">
<!--
<li class="runchart" ng-repeat="chartdata in chartdataarray">
<div class="chart-container">
<line-chart config="chartconfigarray[$index]"
data="chartdata"></line-chart>
</div>
</li>
-->
<li class="runchart">
<div class="chart-container">
<line-chart config="chartconfig1" data="chartdata1"></line-chart>
</div>
</li>
<li class="runchart">
<div class="chart-container">
<line-chart config="chartconfig2" data="chartdata2"></line-chart>
</div>
</li>
</ul>
--
修改:saynothing FROM 115.199.250.*
FROM 115.199.250.*