$rootScope

Lo Scope è un oggetto che fa riferimento al modello dell'applicazione: è il collante tra il controller e la view, contesto di esecuzione per le espressioni angular.

Gli Scope sono disposti nella struttura gerarchica ad imitazione della struttura DOM dell'applicazione e possono ospitare l'esecuzione delle espressioni angular e forniscono una funzionalità di ascolto sugli eventi emission/broadcast e possono propagarli.

Ogni Angular App ha un unico $rootScope: tutti gli altri scope sono ambiti di applicazione discendenti dallo scope principale. Gli scope forniscono la separazione tra il modello e la vista , attraverso un meccanismo in ascolto sulle modifiche al modello: queste modifiche vengono propagate attraverso il sistema (controller , servizi, gestori di eventi).

Durante la fase di linking le direttive impostano le espressioni $watch di controllo sullo scope: il $watch permette alle diretive di notificare i cambiamenti di proprietà del modello, e di restuituire il valore aggiornato al DOM. Entrambi, controller e direttive, fanno riferimento allo scope, ma non tra loro: questa disposizione isola il controller dalla direttiva e dal DOM: questo è un punto importante, in quanto rende i controller "indipendenti" e migliora il testing delle applicazioni.