2013-07-05 15 views
6

Devo chiamare $ scope. $ Applicare quando effettuo una chiamata ajax utilizzando $ http?

Sembra che non sia necessario perché il mio codice funziona ancora, e quando ho usato JQuery ajax ho dovuto chiamare apply o non ha funzionato.

Quindi, per essere completamente sicuro, posso saltare le chiamate applica ora?

risposta

3

Con AngularJS versione 1.1.x è necessario aggiungere Scope.$apply se si attivano chiamate $http al di fuori del ciclo di AngularJS $digest.

spiegazioni dettagliate qui: https://stackoverflow.com/a/17271385/1418796

+0

e quali casi farebbe scattare $ http al di fuori del ciclo angolare normale? solo timeout e ajax non attivati ​​da $ timeout o $ http? –

+0

@RogerAlsing sì quelli sono i tempi principali. Se stai utilizzando i timeout, considera l'utilizzo di [$ timeout] (http://docs.angularjs.org/api/ng.$timeout) –

+0

@RogerAlsing anche tutta la richiesta '$ http' attivata dai normali gestori di eventi DOM (di solito in direttive). –

Problemi correlati