AngularJS在View Change上重新触发控制器的最佳方法

时间:2014-09-15 08:53:05

标签: javascript angularjs nvd3.js angularjs-ng-change

因此使用angularJS webapp,我正在使用nvd3绘制一些图表。

我有一个工厂,它从API和控制器中提取数据,从工厂获取数据,进行一些计算并绘制图形。 假设我的视图中有一个下拉列表,其中包含REST API调用的不同参数选项,并且每个参数都会产生不同的图形。

当用户从下拉列表中选择一个选项时,在控制器中重复计算并重新绘制新图表的最佳方法是什么。

我尝试使用ng-change=callAnUpdateFunction(foo),但我没有成功重新启动控制器。

JSFIDDLE

由于

1 个答案:

答案 0 :(得分:0)

我建议使用以下方法: 使用$ watch来观察您从下拉列表中选择的内容,例如:

$scope.$watch('valueBindToSelect', function(){
   $scope.$emit('SelectValueChangedEvent');
});

$scope.$on('SelectValueChangedEvent', function(){
  doSomeComputationAndReplotGraph();
})