Ich habe dieses Stück Code. Logischerweise sollte dies in eine unendliche Rendering-Schleife gehen. Aber es bleibt stabil und die Ausgabe ist, dass a
und b
, beide zusammen gedruckt werden.Warum verursacht das keine Endlosschleife?
<div ng-if='hello'>
<span ng-init='hello=false'>a</span>
</div>
<div ng-if='!hello'>
<span ng-init='hello=true'>b</span>
</div>
Dies ist nicht Teil von irgendetwas, an dem ich arbeite. Es tauchte einfach in meinem Kopf auf und ich konnte nirgendwo eine Antwort finden.
bearbeiten
Ich verstehe, dass als @dfsq in meinem obigen Beispiel darauf hingewiesen, schafft ng-if
einen neuen Bereich. Also habe ich den Code ein bisschen geändert in this example. Also sollten sich beide ng-if
s auf dasselbe Objekt beziehen. Warum geht es hier nicht in eine Schleife?
HTML
<div ng-app='app'>
<div ng-controller='appCtrl'>
<div ng-if='object.hello'>
<span ng-init='object.hello=false'>a</span>
</div>
<div ng-if='!object.hello'>
<span ng-init='object.hello=true'>b</span>
</div>
</div>
</div>
JS
(function() {
var app = angular.module("app", []);
app.controller("appCtrl", [
"$scope",
function($scope) {
$scope.object = {};
$scope.object.hello = true;
}
]);
})();
ng-wenn erstellt einen neuen Rahmen, so dass sie nicht mit Bezug zu derselben Instanz –