ich zwei $watches
auf meinem Controller verwenden, die ein Auge auf diese beiden Objekte nehmen sollen:
$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"]
};
Zwei Diagramme (von den Charts.js und Winkel-Charts Plugins) lese Daten von ihnen. Ich habe die Diagramme in benutzerdefinierte Anweisungen eingefügt, die die Daten von einem Attribut erhalten, und sie funktionieren ordnungsgemäß.
Das Problem ist, dass ich ein anderes Diagramm erstellen möchten, die ein anderes Objekt liest, die diese gleich ist, aber es die Daten in dieser Methode berechnet:
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;
}
Dies sind die Uhren (Ich habe versucht, sowohl die beobachtete object
und die object.data
Variable):
$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);
});
Dies funktioniert nicht. Sie sehen alle console.logs
? Ich sehe nur die "SCOPE" console.log
, einmal (nicht einmal zweimal für ganancias
). Wenn ich die Daten in einigen Eingaben ändere, die an diese zwei Objekte gebunden sind, funktioniert alles (die Diagramme werden in Echtzeit aktualisiert), aber das beneficios
Diagramm funktioniert nicht, außerdem funktionieren diese Uhren einfach nicht.
Mache ich etwas falsch bei diesen zwei Uhren?
im 'console.log ("scope")' ist '$ scope.beneficios.data' gedruckt wird aus mit seinem aktualisierten Wert? – Rhumborl
Mögliches Duplikat von [$ watch wird bei Arrayänderung nicht ausgelöst] (http: // stackoverflow.com/questions/15363259/watch-nicht-ausgelöst-on-array-change) – mido