2017-04-06 5 views
0

Ich habe Probleme beim Zugriff auf eine global deklarierte JavaScript-Variable, die in einer separaten Datei deklariert ist. Mein Code:Zugriff auf JavaScript-Variable aus einer anderen Datei nicht möglich

<script src="scripts/one.js"></script> 
<script src="scripts/two.js"></script> 

One.js:

var config = { 
    form: 'form', 
    validate: { 
     '#first-name': { 
      'validation': 'required', 
      'error-msg': 'Required Field' 
     }, 
     // other validation rules 
    } 
}; 

Two.js:

$.validate({ 
    modules: 'jsconf', 
    onModulesLoaded: function() { 
     $.setupValidation(config); 
    } 
}); 

I receieve den Fehler

Uncaught ReferenceError: config is not defined 

auf Last der Seite. Gibt es irgendeinen Grund, warum dies passieren würde, wenn ich die Skripte in der richtigen Reihenfolge einfüge?

+1

sind Ihre Pfade zu den Dateien korrekt? – Cruiser

+1

Sind Sie sicher, dass es tatsächlich geladen wird? Registerkarte "Netzwerk"? – epascarello

+0

Blick unter Netzwerk in der Konsole – lustoykov

Antwort

2
window.yourGlobalVariable 

Verwenden Sie den Namen window.variable, um eine Variable zwischen den Dateien zu erhalten.

0

Das Problem liegt daran, dass die Variable in einer Funktion definiert ist. Entweder es außerhalb der Funktion bewegen oder benutzen window.varName

var a = 1; 
 

 
// File 1 
 
$(function() { 
 
    var b = 2; 
 
    window.d = 4; 
 
    console.log(a); 
 
}); 
 

 
// File 2 
 
$(function() { 
 
    var c = 3; 
 
    console.log(a); 
 
    console.log(d); 
 
    console.log(b); // This will throw an error because b is not defined in this scope 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Ich schlage vor, Sie lesen über JS scopes, wenn Sie mehr erfahren möchten.

Verwandte Themen