2014-06-16 18 views
5

Il servizio di controllo dell'orologio crea un proxy della funzione originale?Orologio AngularJS - impossibile impostare il punto di interruzione in chrome utilizzando gli spazi di lavoro di devtools

$scope.$watch('query', doSearch, true); 

dove:

doSearch = function(query) { 
    alert("breakpoint not working"); 
    // stuff 
} 

L'avviso viene visualizzato, ma se posso aggiungere un punto di interruzione per il codice utilizzando debugger di cromo, la sua non si rompe affatto. Mentre altri punti di interruzione nelle funzioni javascript non guardati funzionano normalmente.

Aggiornamento: Il punto di rottura funziona bene quando io non uso la funzione workspaces degli strumenti di Chrome dev.

+0

Nel loro codice sorgente sembra che "eseguano il wrapping" della funzione passata ('var originalFn = watcher.fn;' ... 'originalFn.call (this, newVal, oldVal, scope);'), ma che non dovrebbe influenzare i punti di interruzione e il debug ... – Ian

+0

@Ian perché non dovrebbe? Sto anche utilizzando gli spazi di lavoro cromati ma non credo che questo faccia la differenza. – NimChimpsky

+0

Voglio dire, sta ancora chiamando la funzione esatta che gli hai passato. Se avesse in qualche modo costruito una funzione totalmente nuova e scartato ciò che hai passato, sarebbe una storia diversa (non sono sicuro di come o perché lo farebbero). Hmm proverò a debuggarlo in un normale browser Chrome e ti faccio sapere se ho questo problema – Ian

risposta

1

Provare a utilizzare il comando debugger ..
Per me funziona quando i breakpoint regolari funzionano su Chrome.

Problemi correlati