2015-04-06 69 views
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罚款,但是当我在按钮点击更新图表它正确地调用数据的方法,但是立即将其称之为数据(“使用”)和覆盖值。我认为应该有一种方法只在初始化时调用方法,这样我可以跳过两次调用数据方法。

感谢 提前

+0

你看过用$ interval打包函数吗? – austinthedeveloper

+0

你能改说你的问题吗?这很难理解。 – Oleg

+0

感谢oleg和austinthedeveloper。我改述了我的问题。我的问题是调用两次的data()方法。 –

回答

0

我发现这个问题是由于我使用NG-init和重载方法,js文件也初始化从UI初始化控制器。从UI中删除后,它按预期工作。