AngularJS & il binding è [dovrebbe essere] ¹ molto semplice da capire, specialmente per uno sviluppatore JavaScript.
In JavaScript, i callback sono usati molto . Sono utilizzati così tanto, che può essere molto fastidioso scrivere codice JavaScript per uno sviluppatore Java o C # o PHP. Quando ci si aspetterebbe di avere un valore di ritorno, una determinata funzione non restituisce nulla, ma richiede al chiamante di passare una richiamata che potrebbe essere chiamata da qualche parte in futuro. NodeJS, in particolare, è divertente da usare quando proviene da linguaggi come Java, C # o PHP, dal momento che alcuni problemi molto semplici, come la lettura, consecutivamente, di tre file da disco, diventano molto difficili da risolvere in termini di callback.
Questo è esattamente l'approccio di AngularJS. Passi una richiamata in cui ti aspetti di essere chiamata, e il gioco è fatto. Non devi capire gli eventi. Con una comprensione di base dei callback di JavaScript, puoi fare tutto ciò che vuoi. Non c'è bisogno di imparare qualche libreria di eventi o framework.
AngularJS & il binding è anche più potente di semplici eventi. Come hai evidenziato nella tua domanda, non è un'associazione callback, ma un'espressione vincolante, il che significa che puoi fare molto più che invocare un determinato evento. Non sono sicuro che questa flessibilità abbia alcuni importanti vantaggi, se è solo una seccatura che rende AngularJS & legare più duramente di quanto deve essere; tuttavia, puoi usarlo con le espressioni-qualcosa che non sarai in grado di fare se AngularJS stava usando eventi.
[But why would you use & binding] in a case where your application already uses events for some things?
Per conoscere il motivo esatto, chiedi alle persone che hanno mantenuto il codice dove hai visto entrambi gli eventi e & rilegatura. Ci potrebbero essere diversi possibili motivi:
-
Perché usare gli eventi, quando & funziona anche il binding? È così semplice.
-
Il codice potrebbe essere iniziato con & rilegatura. Gli eventi sono stati aggiunti dove ce n'era bisogno. Nessuno migrerebbe l'intero codice base per utilizzare gli eventi, perché rappresenta un costo per l'azienda, pur non avendo assolutamente alcun valore commerciale.
-
Alcuni sviluppatori del team hanno familiarità con gli eventi; altri preferiscono attenersi a & vincolante.
¹ E poi il sogno si interrompe non appena ci si rende conto che non si tratta di veri e propri callback, ma di espressioni e che ha alcune importanti conseguenze sul modo in cui viene usato il binding, anche per cose semplici come la funzione argomenti.