2013-12-16 14 views
29

In pochi sceneggiatura posso trovare per esempio

$timeout(function() { 
    $scope.my = 1;    
}); 

invece di limitarsi a

$scope.my = 1; 

Qual è lo scopo di chiamare timeout $ senza indugio?

risposta

47

Questo è un hack. :) Ma in genere l'intenzione è attendere fino alla fine del ciclo $digest e quindi impostare $scope.my su 1. I timeout vengono chiamati dopo che tutti gli orologi sono terminati.

+3

Davin, potresti spiegare PERCHÉ è un trucco? Forse fornire un esempio di quando potrebbe essere utilizzato e quale sarebbe la soluzione ideale IDEALE? Ho notato che è piuttosto diffuso in un progetto al lavoro, e capisco cosa risolve, ma non riesco a capire quale sarebbe una soluzione migliore. – karns

+0

Esempio: ho un evento click che attiva una richiesta sull'ambito corrente e ho un watcher che attiva lo stesso evento click. Ho dovuto fare una condizione per non ricaricare la chiamata in corso nell'evento e un timeout nell'osservatore per attendere la fine del ciclo di digest (dovuto a apply() chiamato nell'evento). Pubblicherò il codice al più presto. – Disfigure

Problemi correlati