2017-05-31 3 views
0

ich eine js-Datei, wo ich eine Variable deklariert, die ich in einem Skript im HTML verwenden möchtenZugriff auf Variable einer js-Datei auf einer HTML-Datei

js-Datei (controllerB.js)

var modalArticles = []; 
$(document).ready(function() { 
    $.ajax({ 
     url: "https://newsapi.org/v1/articles?source=google-news&sortBy=top&apiKey=*****" 
    }).then(function (data) { 

     modalArticles = data.articles; 
    }) 
}) 

html-Datei

<head> 
<meta charset="utf-8" /> 
<title>News</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

<script src="js/handlebars-v4.0.10.js"></script> 
<script type="text/javascript" src="js/controllerB.js"></script> 


</head> 
<body></body> 
<script type="text/javascript"> 
    console.log('print: ' + modalArticles); 
</script> 

modalArticles ist leer in html

+0

so etwas? http://plnkr.co/edit/oyThCOliuBHVFBgYZQTg?p=preview –

Antwort

2

Ihre Variable leer ist, weil es nur in ist itialisiert an dem Punkt, an dem Ihr Dokument geladen ist. Sie füllen die Variable mit einer asynchronen Anfrage, so dass sie nur dann verfügbar ist, wenn das Versprechen gelöst ist.

Wenn Sie den Inhalt Ihrer Variablen in Ihrem HTML anzeigen möchten, könnten Sie jquery (entsprechend Ihrer Tags) verwenden, um den HTML-Code des Elements festzulegen, in dem der Inhalt angezeigt werden soll die then Methode.

Wenn Sie es wollen, in "#mydiv" angezeigt werden, könnten Sie dies tun:

.then(function(value){ 
    $('#mydiv').html(value); 
}) 
+0

Was ich versuche zu tun ist ein Array zu erstellen, das ich im HTML-Format iterieren werde, nicht nur den Inhalt über ein div –

+0

dann iterieren Sie die Werte im Array in Deine 'then'-Funktion und füge die Werte zum DOM hinzu oder tu was immer du damit machen willst. – Strernd

Verwandte Themen