Ist es irgendwie möglich zu überprüfen, ob der Winkelbereich isoliert ist oder nicht, nur mit dem Oszilloskop?
Ich weiß, dass isolierte und nicht isolierte Bereiche unterschiedliche Prototypen haben. Diese Prototypen sind jedoch in eckiger Form und nicht leicht zugänglich. Die Überprüfung des Prototypnamens scheint ziemlich dreckig zu sein.
Bessere Idee?
Der erste Unterschied, den ich kenne, ist, dass Isolierter Bereich das Feld "$ root" hat, also rootScope .
Der zweite Unterschied besteht darin, dass Isolierter Gültigkeitsbereich das Feld "$$ isolateBindings" enthält, aber nicht isoliert nicht
In der Dokumentation sollte Folgendes der Fall sein:
%Vor%ruft einen Isolate-Bereich ab, wenn einer direkt an den aktuellen angehängt ist Element. Dieser Getter sollte nur für Elemente verwendet werden, die a enthalten Anweisung, die einen neuen Isolationsumfang startet. Aufruf von scope () zu diesem Thema Element gibt immer den ursprünglichen nicht isolieren Bereich zurück. Erfordert Debuggen Daten, die aktiviert werden sollen.
Wie in den Dokumenten erwähnt, wenn Sie Folgendes (wie in der Produktion) konfigurieren sollten:
%Vor% Diese Methode wird nicht mehr funktionieren ... Ich denke, der Hauptgrund, um isolateScope
auf diese Weise zu erhalten, ist Unit-Tests, und es gibt keinen Grund, bestimmte Aktionen zur Isolation des Oszilloskops durchzuführen (korrigiert mich, wenn ich bin falsch).
Sie können es so überprüfen:
%Vor%Es ist nicht perfekt, da es auf Implementierungsdetails beruht, aber ich kann mir nichts besseres vorstellen.
Erläuterung:
scope.hasOwnProperty('$root')
. Jeder Bereich hat diese Eigenschaft. Es zeigt auf den nächsten übergeordneten Bereich, der isolate oder $rootScope
ist. Diese Eigenschaft wird prototypisch vererbt. Daher ist sie eigene nur für isolierte Bereiche und $rootScope
.
scope.$root !== scope
. Überprüfen Sie, ob der Bereich nicht $rootScope
ist.
scope.$root
. Kann durch !scope.$$destroyed
ersetzt werden. Wenn ein Bereich zerstört wird, wird null
vielen seiner Eigenschaften einschließlich $root
zugewiesen, so dass die Eigenschaft eigene wird.
Tags und Links javascript angularjs angularjs-scope