
Datenbindung in AngularJS
Im heutigen Beitrag möchte ich euch ein wenig beschreiben, wie
eigentlich die Datenbankbindung in AngularJs funktioniert.
Allgemein lässt sich zuerst einmal sagen, dass AngularJs sich
einen Wert merkt und dann mit dem alten Wert vergleicht, was
man als Dirty-Checking bezeichnen kann. Wenn ein Wert geändert
wird, dann wird ein Change Event ausgelöst.
Mit der $apply() Methode kann aus einem Kontext außerhalb von
Angular Dirty-Checking ausgelöst werden, in Angular wird dazu
analog die Methode $digest() aufgerufen. Die Methode funktioniert
in allen Browsern und ist sehr berechenbar.
Obwohl Dirty-Checking vielleicht etwas zu simpel oder auch
ineffizient wirken kann, stellt sich heraus dass es semantisch
zu jeder Zeit korrekt ist, während im Gegensatz Change-Listener,
die z.B. bei KnockoutJS oder Backbone.js verwendet werden, einige
seltsame Ausnahmefälle haben und Dinge wie Dependency Tracking
benötigen, semantische Korrektheit schwieriger machen.