angular.element.scope () Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² iframe ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° src iframe.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ undefined:
angular.element(document.body).scope()
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ onclick ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ angular:
<script>
document.addEventListener("click", function(){
console.log(angular.element(document.body).scope());
});
</script>
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² iframe ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π°ΡΡΠΈΠ±ΡΡΠ° src.
ΠΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ 1.3.0-rc.5, Π±Π΅Π· jquery.
ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² plnkr?
Π£ ΠΌΠ΅Π½Ρ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΌΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅, Π½ΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ Π΅Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ plnkr.
scope () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ undefined Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ JQLite ΠΈΠ»ΠΈ JQuery 2.1.1 Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅.
AngularJS 1.3.1.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΡΡΠΎ:
document.addEventListener('DOMContentLoaded', function () {
angular.element(document.body).scope();
});
Π²Ρ ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ @VictorQueiroz?
@caitp ΠΡ Π΅Π³ΠΎ Π½Π°ΡΠ»ΠΈ.
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ - Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Ρ ΠΎΡΠΎΡΠΈΠΉ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ
: smile:: smile:: smile:
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, ΡΠ΅Π±ΡΡΠ°, ΡΡΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΡΠ΅Π°Π³ΠΈΡΡΡ. ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ²ΡΠ·Π°Π½Π° Ρ jqCache ΠΈΠ»ΠΈ, ΡΠΎΡΠ½Π΅Π΅, Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ expandoId. Π ΡΡΠ°ΡΡΡ
RC ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ ΡΠ°ΠΊ:
var expandoId = element[JQLite.expando];
Π Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡΡ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°Ρ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ:
var expandoId = element.ng339;
ΠΡΠΌΠ΅Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΡΠ°Π½ΠΈΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Ρ ΠΌΠ°Π»ΠΎ ΡΡΠΎ Π·Π½Π°Ρ ΠΎΠ± ΡΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π±Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠΎΠ³ ΠΏΡΠΎΠ»ΠΈΡΡ ΡΠ²Π΅Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ ΡΠΌΠΎΠ³ Π±Ρ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ.
ΠΠ³ΠΎ , ΡΠΏΠ°ΡΠΈΠ±ΠΎ ΡΠ²ΠΎΠ΄ΠΈΠ» ΠΌΠ΅Π½Ρ Ρ ΡΠΌΠ°!
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ ΠΏΠΎ $ compileProvider Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠ΅Π΅, ΡΡΠΎ $compileProvider.debugInfoEnabled(false)
Π·Π°ΡΡΠ°Π²ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ scope()
Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ undefined, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΠ·ΠΌΠ΅Π½ΠΈΡΡ: ΠΌΠΎΠΉ ΠΏΠ»ΠΎΡ ΠΎΠΉ, ΡΡΠΎ ΡΠΆΠ΅ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅
ΠΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄, ΡΡΠΎΠ±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ / ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅, ΡΠ°ΠΊΡΡ ββΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² DOM.
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ; Π΅ΡΡΡ debugInfoEnabled (false), Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°?
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ angular.reloadWithDebugInfo()
ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π·Π΄Π΅ΡΡ .
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ @gkalpak Π·Π΄Π΅ΡΡ ΠΏΡΠΎΡΡΠ½ΠΈΠ»!
ΠΠΎΡΠ΅ΠΌΡ Π·Π°ΠΊΡΡΡΠΈΠ΅? ΠΠΎΠΈΡΠΊ ΠΎΠ±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π°, scope () Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ΅ΡΠΊΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² angular.element #scope () doc.
@Toilal Π― Π·Π°ΠΊΡΡΠ» Π΅Π³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΆΠ΅ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½, ΠΊΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΡΡΠΎΠΉ Π²Π΅ΡΠΊΠΈ. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΡΠ°Ρ , ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½Ρ Π·Π° PR!
Π― Π½Π΅ ΠΌΠΎΠ³Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ Π²Π΅Π΄ΡΠΌ ΠΈΠ· angular.element Π½Π΅ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. scope () ΡΠΎΡΠ½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π», Π½ΠΎ ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ Π΄ΡΡΠ³ΠΈΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ controller (), injector () ...
ΠΠΎΡΠ»Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ½ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° scope () ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡScope (). Π― Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΡΡ ΡΡΠΎ ΠΈ ΡΠ΄Π΅Π»Π°Ρ ΠΏΠΈΠ°Ρ.
ΠΠΎ Π΅ΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ· ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° DOM ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ?
@Toilal - Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ - ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±Π»Π°ΡΡΠΈ Π±ΡΠ»Π° ΡΠ΄Π°Π»Π΅Π½Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Π΅ ΡΠ°ΡΠΊΡΡΡΠΈΠ΅ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ - Π²ΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½Π° ΡΠΊΡΡΡΠ° Π·Π° ΡΠ»Π°Π³ΠΎΠΌ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠ³Π»Π° Π±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π΅ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ @ pkozlowski-opensource. Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎ scope () ΠΈ isolateScope () Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
@ocombe ΠΡΠΎ ΡΠΎ, ΡΡΠΎ Ρ ΡΠ΄Π΅Π»Π°Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΏΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ / ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡScope, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ (ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ).
setTimeout (function () {
console.log (angular.element (document.body) .scope ());
}, 100);
@ronnievdv
ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ; Π΅ΡΡΡ debugInfoEnabled (false), Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°?
Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ snipet _ (Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ) _ Π² ΡΡΠ½ΠΊΡΠΈΠΈ link
ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ.
link: function(scope, element, attrs) {
var isolatedScope = scope.$$childTail;
}
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΎΡΠΊΠ»ΡΡΠ΅Π½ Π»ΠΈ debugInfo ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ»Π°Π³ Π΄Π»Ρ Π½Π΅Π³ΠΎ?
ΠΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ $compileProvider.debugInfoEnabled()
.
ΠΡΠ»ΠΈ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Ρ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ angular.reloadWithDebugInfo()
ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ, ΠΈ ΠΎΠ½ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
@gkalpak Π― ΠΏΡΠΎΡΡΠΎ Ρ ΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π»ΠΈ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ.
if(angular.isDebugInfoEnabled()) {
// Do something
}
@hemkaran , ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π΅ΡΡΠ½ΠΎ, _ Π³Π΄Π΅_ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ ΠΈΠ·Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ $compileProvider.debugInfoEnabled()
.
@Toilal ΠΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ°ΠΊΡΡ ββΠ΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ? ΠΡΠ»ΠΈ Π΄Π°, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ? Π£ ΠΌΠ΅Π½Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°. Π― ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ Π½Π°ΠΉΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ΅ΡΠΈΡΡ, Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡ.
cc @ocombe
ΠΠ·Π²ΠΈΠ½ΠΈΡΠ΅, Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Angular 1, ΠΈ ΠΌΠ½Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΡΡ ββΠ΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ (ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ½Π΅ Π½ΡΠΆΠ½Π° ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ)
Π― ΡΠ΄Π΅Π»Π°Π» ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΡΠΎΠΏΡΡΡΡΡ Π»ΠΈ ΠΌΠΎΠΈ ΡΠΎΠ²Π°ΡΠΈΡΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΎΠ±Π·ΠΎΡ :)
function exposeScope() {
return {
restrict: 'A',
link: function(scope, element) {
element[0].APPNAME = {
getScope: function() {
return scope;
}
};
}
};
}
return {
restrict: 'A',
scope: false,
link: function(scope, elem) {
elem.data('$scope', scope);
}
};
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Π΄Π»Ρ $ isolateScope, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
angular.reloadWithDebugInfo()
ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π·Π΄Π΅ΡΡ .