Ich experimentiere mit der Google-Schließbibliothek und arbeite durch the official XhrIo guide. ich in einige Schwierigkeiten lief mit dem xhr-quick2.js
Beispiel reproduziert unter:Zugriff auf `goog.require`d Objekt in der Schließbibliothek ohne Kompilierung
goog.require('goog.net.XhrIo');
var xhr = new goog.net.XhrIo();
goog.events.listen(xhr, goog.net.EventType.COMPLETE, function(e) {
obj = this.getResponseJson();
log('Received Json data object with title property of "' +
obj['title'] + '"');
alert(obj['content']);
});
function getData(dataUrl) {
log('Sending simple request for ['+ dataUrl + ']');
xhr.send(dataUrl);
}
Sobald er ausgeführt wird, erhalte ich die Fehlermeldung:
Uncaught TypeError: Cannot read property 'XhrIo' of undefined
Wenn ich den Ereignis-Listener und xhr Instanziierung innerhalb der getData
bewegen Funktion (die in der onload
des Körpers genannt wird), ist alles gut.
goog.require('goog.net.XhrIo')
function getData(dataUrl) {
var xhr = new goog.net.XhrIo()
goog.events.listen(xhr, goog.net.EventType.COMPLETE, function(e) {
obj = this.getResponseJson()
log(`Received Json data object with title property of "${ obj["title"] }"`)
alert(obj["content"])
})
log(`Sending simple request for [${ dataUrl }]`)
xhr.send(dataUrl)
}
function log(msg) {
document.getElementById('log').appendChild(document.createTextNode(msg));
document.getElementById('log').appendChild(document.createElement('br'));
}
Ich nehme an, das liegt daran, dass goog.require
nicht beendet hat net
importieren, wenn goog.net.XhrIo
in Zeile 3 des ersten Codebeispiel instanziiert wird. Ich nehme an, die ideale Lösung ist, um alle meine Code durch die Schließung Compiler laufen, aber ich bin nur experimentieren und other parts of the documentation meinen Workflow ist akzeptabel für die Entwicklung.
Gibt es etwas, das ich in meinem HTML manuell quellen kann, das dieses Problem beseitigen würde? Gibt es eine andere Herangehensweise, die ich ergreifen sollte?