Sto cercando di mantenere i miei controller il più sottili possibile, quindi mantengo la logica del dominio nei servizi e nelle fabbriche.
Quando devo chiamare una funzione in risposta a un'azione dell'utente come un clic, assegno la funzione di fabbrica o di servizio alla variabile $scope del controller.
$scope.saveStuff = myFactory.SaveStuff;
myFactory.SaveStuff chiama effettivamente un gruppo di funzioni private che $scope non può vedere. Sono rimasto un po 'sorpreso dal fatto che una chiamata a $scope.saveStuff non abbia comportato errori di riferimento.
Come funziona? $scope.saveStuff è solo un puntatore a myFactory.SaveStuff ? Significa che $scope.saveStuff è in realtà in esecuzione all'interno dell'ambito di myFactory , quindi ha accesso a qualsiasi dato / funzione privato all'interno di myFactory ?