下午好。
我有一个角度控制器,它有我在图表中显示的数据
<nvd3-multi-bar-horizontal-chart
ng-model="Data"
data="Data"
id="exampleId"
xAxisTickFormat="xAxisTickFormatFunction()"
yAxisTickFormat="yAxisTickFormatFunction()"
height={{height}}
showValues="true"
color="colorFunction()"
showXAxis="true"
margin="{left:100}"
interactive="true"
>
<svg></svg>
</nvd3-multi-bar-horizontal-chart>
编辑: 应用程序需要做的是显示数组中的所有数据,用户可以调整该数组的1个元素
我现在尝试使用ng-click页面上的按钮模拟这个,执行以下方法调整数组中的1个元素
$scope.buttonClick = function(){
$scope.Data[0].values[0][1] = 2345; //this changes the data but does not update the chart
$scope.Data = [
{
key: "timeData",
values: [
["test", 1234]
]
}
] //this completely overrides the array and replaces it (which i dont want)
};
控制器更新数据,但图表不会更新
我测试了这一点,显示了段落中数据的第一个条目,它正确地更新了
有没有人知道如何解决这个问题
(链接到angular chart directive中使用的指令)
提前致谢
答案 0 :(得分:3)
答案 1 :(得分:1)
从查看来源,您需要设置objectequality="false".
它设置$scope.$watch(data, objectequality).
我不是这个指令的专家,但请尝试:
<nvd3-multi-bar-horizontal-chart
...
objectequality="false"
...
>
<svg></svg>
</nvd3-multi-bar-horizontal-chart>
答案 2 :(得分:0)
您也可以使用此方法:
$timeout(function () {
$scope.api.refresh();
}, 1);