【发布时间】:2016-06-07 23:52:34
【问题描述】:
我在控制器上使用了两个 $watches,它们应该关注这两个对象:
$scope.gastos = {
name: "Gastos mensuales",
data: [0,0,0,0,0,0,0,0,0,0,0,0],
labels: ["Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre",
"Noviembre", "Diciembre"]
};
$scope.ganancias = {
name: "Ganancias mensuales",
data: [0,0,0,0,0,0,0,0,0,0,0,0],
labels: ["Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre",
"Noviembre", "Diciembre"]
};
两个图表(来自 Charts.js 和 angular-charts 插件)从中读取数据。我已将图表放在从属性接收数据的自定义指令中,并且它们工作正常。
问题是,我想创建另一个图表来读取另一个等于这些对象的对象,但在此方法中计算它的数据:
function calcularBeneficios(){
var data = [];
for(var i=0;i<12;i++){
data[i] = $scope.ganancias.data[i] - $scope.gastos.data[i];
}
console.log("FUNCTION DATA: "+data);
return data;
}
这些是手表(我尝试同时查看object 和object.data 变量):
$scope.$watch("gastos", function(){
$scope.beneficios.data = calcularBeneficios();
console.log("SCOPE: "+$scope.beneficios.data);
});
$scope.$watch("ganancias", function(){
$scope.beneficios.data = calcularBeneficios();
console.log("SCOPE: "+$scope.beneficios.data);
});
这不起作用。你看到所有的console.logs了吗?我只看到一次"SCOPE" console.log(ganancias 甚至没有两次)。当我更改绑定到这两个对象的某些输入中的数据时,一切正常(图表实时更新)但beneficios 图表没有,这些手表也不起作用。
我在这两款手表上做错了吗?
【问题讨论】:
-
在
console.log("SCOPE:")中,$scope.beneficios.data是否正在打印出更新后的值?
标签: javascript angularjs