0
我正在尝试创建一个示例应用程序,它使用morrischart在3个按钮上呈现图表上的某些数据。点击每个按钮时,图表区域应该用新的图表集合重新渲染。下面是HTML使用angularjs更新视图
代码在这里是代码
<div class="panel-body">
<linechart id="line-example" data-options="chart_options"></linechart>
</div>
<div class="panel-footer clearfix">
<a href="#" class="btn btn-primary btn-lg" ng-click="data('usage')" data="usage">
<i class="fa fa-tachometer fa-fw" ></i>Usage</a>
<a href="#" class="btn btn-primary btn-lg" ng-click="data('cost')" data="cost">
<i class="fa fa-money fa-fw" ></i>Cost
</a>
<a href="#" class="btn btn-primary btn-lg" ng-click="data('weather')" data="weather">
<i class="fa fa-soundcloud fa-fw" ></i>Weather</a>
</div>
Javascript代码获取数据并填充到$ scope.chart_options变量这是在HTML代码“线型图”元素使用。
====的JavaScript
$scope.data = function(reporttype){
console.log(reporttype);
var data=customersFactory.getChartData(reporttype);
$scope.chart_options = data;
};
//initialize chart
data('usage');
它再次initalizes罚款,但是当我在按钮点击更新图表它正确地调用数据的方法,但是立即将其称之为数据(“使用”)和覆盖值。我认为应该有一种方法只在初始化时调用方法,这样我可以跳过两次调用数据方法。
感谢 提前
你看过用$ interval打包函数吗? – austinthedeveloper
你能改说你的问题吗?这很难理解。 – Oleg
感谢oleg和austinthedeveloper。我改述了我的问题。我的问题是调用两次的data()方法。 –