2015-05-12 10 views
5

Sto cercando di capire un file angularjs ho bisogno di utilizzare per l'integrazione con Django, e ha una sintassi strano io non sono a conoscenza (tenere a mente io sono un dev juniores, quindi questo potrebbe essere il tuo pane e burro) ...Perché viene utilizzato "window.angular" in questo modo, in questa definizione di funzione?

e 'più o meno così:

(function(angular, undefined){ 
    'use script'; 
    var djng_forms_module = angular.module('ng.django.forms', []); 
    funtion hasCode(s){ 
     return ..... 
    } 
    var foo = ..... 
}(window.angular)); 

ho visto this sul concetto javascript di una finestra e si vede che la parte window è il top() oggetto di livello il browser? crea quando carica la pagina.

In esecuzione console.log(window.angular) stampa un carico di elementi angolari interni. Quindi immagino che sia il coraggio interno di AngularJS ...?

Ma perché questo strano incapsulamento come funzione (qualcosa ha a che fare con JavaScript come linguaggio "funzionale")?

Lo script completo è here e non riesco a capire perché utilizza window.angular in questa definizione di funzione (in contrasto con il normale modo di fare le cose). Sembra che questa configurazione significhi che non funziona per la mia applicazione quando la importazione tramite i tag script.

risposta

8

window.angular è la variabile angularjs globale che sta creato quando angularjs è stato completamente caricato da un tag script. Il frammento di codice che hai incollato assicura che venga eseguito dopo la popolazione di questa variabile. Una ragione per cui potrebbe essere scritta in quel modo verboso è semplicemente la sua natura generata automaticamente. In un contesto più ampio, può avere implicazioni per l'ordine in cui vengono eseguiti gli script o utilizzando diverse versioni della libreria angularjs.

Problemi correlati