Wie kann ich überprüfen, ob der Bereich isoliert ist?

9

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?

    
Kędrzu 29.04.2016, 14:23
quelle

3 Antworten

2

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

    
Hazarapet Tunanyan 29.04.2016, 21:27
quelle
1

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).

Ссылка

    
r0m4n 04.05.2016 00:10
quelle
0

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:

  1. 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 .

  2. scope.$root !== scope . Überprüfen Sie, ob der Bereich nicht $rootScope ist.

  3. 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.

thorn 23.09.2016 02:14
quelle