Я использую два $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 и угловых диаграмм) читать данные из них. Я поместил диаграммы в пользовательские директивы, которые получают данные из атрибута, и они работают правильно.
Проблема заключается в том, что я хочу, чтобы создать еще одну таблицу, которая читает другой объект, равный их, но вычислил его данные в этом методе:
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.beneficios.data' быть распечатаны с его обновленной стоимостью? – Rhumborl
Возможный дубликат [$ watch не запускается при изменении массива] (http: // stackoverflow.com/questions/15363259/watch-not-being-triggered-on-array-change) – mido