2015-10-27 12 views
7

Quali sono le differenze tra l'utilizzo di document e $document durante lo sviluppo delle applicazioni di Angular? Ho letto che è meglio utilizzare equivalenti angolari come: $window anziché window o $timeout anziché setTimeout.

Ma ... perché? Ho pensato che window, setTimeout e document sono più veloci perché sono nativi e non hanno bisogno di "passare attraverso" il codice del framework Angolare.

È meglio utilizzare gli equivalenti di Angular invece delle funzioni native, oggetti di JS?

+0

Assolutamente d'accordo con te .. Sì il il codice nativo è più veloce ma la ragione per cui capisco è che il nuovo sviluppatore angolare potrebbe non comprendere il codice nativo. Ecco perché, probabilmente. Ma mi chiedo perché (o esattamente come) le persone imparino Angular senza sapere cosa succede nel codice nativo? –

+0

Guarda cosa dicono i documenti angularJS: Un wrapper jQuery o jqLite per l'oggetto window.document del browser. –

+0

https://coderwall.com/p/udpmtq/angularjs-use-timeout-not-settimeout questo ti aiuterà –

risposta

0

seguito è sempre vero: $ window.document === $ documento [0]

5

$document è un oggetto jQuery (in pratica $(document)).

Quindi, in pratica si dovrebbe essere in grado di fare:

$document[0].property = document.property 

Potete guardare this per un esempio.

6

Utilizzando i servizi angolari per $ documento e $ finestra si rende pronto il test dell'unità di codice. Questa iniezione di dipendenza consente di utilizzare versioni fittizie di $ document o $ window nei test.

L'impatto sulle prestazioni menzionato può essere ignorato.

0

Si dovrebbe usare wrapers angolari, BCU non si rompe la sincronizzazione angolare con modello-> vista,

Per exmaple, se si utilizza setTimeout si dovrà digerire $() il campo di applicazione per aggiornare i valori nella vista, se prevedi di modificare alcuni valori del modello, d'altra parte se usi $ timeout non hai bisogno di farlo bcus lo scope si aggiornerà dopo che la funzione termina

Problemi correlati