2017-08-04 1 views
0

Ich habe dies:Geben Sie externe Javascript Datenarray

<!-- Javascript --> 
<script> 
$(function() { 
    var availableTutorials = [ 

     "MacKenzie, Randy", 
     "Paciorkowski, Lev", 
     "Johnston, Daniel", 
     "Lionti, Michael", 
    ]; 
    $(".automplete-2").autocomplete({ 
     source: availableTutorials, 
     autoFocus: true 
    }); 
}); 
</script> 

Aber ich will nur die Namen in einer externen JavaScript-Datenfeld angeben; wie src = "players.js";

Wie kann ich das tun, ohne den Javascipt zu brechen?

+0

Anstelle von 'source: availableTutorials', geben Sie einfach die URL wie diese' source: url' –

+0

für mich die Bedeutung von 'external javascript data array; wie src = "players.js"; 'ist absolut unklar – smnbbrv

Antwort

0

Sie sie einfach in eine separate externe hinzufügen Javascript-Datei, und schließen Sie die Datei, bevor Sie Ihre aktuelle Datei (in dem Sie diese Namen verwenden möchten)

zB in Ihrem players.js Datei irgendwo auf dem Server Sie diese haben code

window.players = [ 
    "John", "Mike" 
] 

Dann fügen Sie die Player-Liste in Ihre Kopfzeile ein, um sie für die schnelle Verwendung zu laden.

<script src="players.js"></script> 

dann woanders

<script> 
$(".automplete-2").autocomplete({ 
     source: window.players, 
     autoFocus: true 
    }); 
}); 
</script> 

Wie in den Kommentaren erwähnt, verschmutzen Sie globalen Namensraum von Eigenschaften Fensterobjekt hinzufügen. Es ist in Ordnung, aber Sie sollten versuchen, alle Ihre Site-spezifischen Eigenschaften in eine benutzerdefinierte Untereigenschaft hinzuzufügen, die sich wahrscheinlich nicht mit einer Drittanbieterbibliothek überschneidet.

zum Beispiel:

SiteData.players = []; // your preloaded player list 
SiteData.config = { 
    apiUrl: 'some url', 
    env: 'test' 
} 
SiteData.userPreferences = { 
    playersPerPage: 10, 
    colorScheme: 'dark' 
    ... 
} 

Und so weiter. Auf diese Weise haben Sie nur eine Eigenschaft für den globalen Namespace.

+1

Beachten Sie, dass Sie damit Gefahr laufen, den globalen Namensraum zu verschmutzen. – Terry