Im Zusammenhang mit Einfügen oder Löschen aus einem Array in angular, ist es möglich, das Array zu sehen und dann das Objekt, das hinzugefügt oder aus dem Array gelöscht wurde, zu bekommen? Die Eigenschaften der Objekte im Array sind mir egal, nur die Objekte selbst werden hinzugefügt oder gelöscht. Ich glaube also, dass $ watchCollection hier gut passt, also ist es keine tiefe Uhr.Angularjs beobachten Array und Objekt geändert
Zum Beispiel, ich habe dieses Array als Modell für ein Dual-Listenfeld:
$scope.employees = [
{
name: "Bob",
id: "0"
},
{
name: "Carl",
id: "1"
},
{
name: "Bill",
id: "2"
}
];
Die Listbox automatisch $ scope.employees werden aktualisiert, wenn ich ein bewege weg von ihnen oder auf sie (Einfügen/Löschen). Wenn ich das tue:
$scope.$watchCollection('employees', function(){
//somehow get changed object
var changedObject = ...;
$scope.changedItems.push(changedObject);
});
Ich mag das hinzugefügt/gelöscht Element in der Lage zu bekommen, damit ich es verwenden kann oder es irgendwo speichern.
die neuen und alten Werte verwenden '$ scope $ watchCollection ('Mitarbeiter', function (newVal, oldVal) ' – Ronnie
@Ronnie, enthalten diese Werte nicht die gesamten Array-Objekte? Müsste ich vergleichen, um das geänderte Objekt zu finden? –
Ja, ich glaube nicht, dass es eine Out of the Box-Methode gibt dir zu sagen, was du verändert hast, vielleicht kümmerst du dich darum, wenn du das Ob verändern willst anstatt auf eine Uhrmethode zu vertrauen. – Ronnie