$scope.$apply
wird nicht mehr Teil von Angular 2 sein. Wie können wir Angular wissen lassen, das DOM zu aktualisieren, wenn eine der gebundenen Eigenschaften außerhalb des regulären Winkels geändert wurde?
von a blog post by Minko Gechev Genommen:
Nicht mehr $ scope $ gelten
Aber wie dann AngularJS weiß, dass etwas außerhalb es hat einen Ausführungskontext stattgefunden.? Lets denken, wo die Änderungen aus kommen könnte:
- SetTimeout
- setInterval
- prompt (ja, es gibt Leute, die es immer noch verwenden ...)
- XMLHttpRequest
WebSockets
...
, für die die Antwort lautet:
Ich verstehe, dass der Browser integrierte JavaScript-Funktionen Patchen von Änderungen an Eckige benachrichtigen ist etwas, das in einer relativ sicheren Art und Weise durchgeführt werden kann (ohne Einführung von subtilen Bugs) und wäre sehr praktisch für den Entwickler. Aber was ist mit APIs von Drittanbietern (wie jQuery.fadeIn
) oder wenn der Browser einige neue asynchrone API verfügbar macht, die nicht abgedeckt sind? Was ist der Ersatz für alte $scope.$apply
?
Vielen Dank! Genau das, was ich gesucht habe. –
Ich sehe einige interne Google-Sachen wie https://github.com/sararob/angular2base/blob/master/src/firebasepipe.ts mit einem ChangeDetectorRef - jemand weiß, ob das die neue Schärfe ist und die zone.afterTask () Methode ist veraltet? Oder was ist die Beziehung dort? – OverclockedTim
zone.afterTask() macht überhaupt nichts für mich. Muss ich etwas tun, um nach Änderungen an ng2-Ansichten zu suchen? –