#javascript #google-maps #google-visualization
#javascript #google-карты #google-визуализация
Вопрос:
Некоторое время назад я создал виджет Google Geochart с более старой версией библиотеки Google JS. В настоящее время Google рекомендует обновить, чтобы обновить api загрузчика вместо jsapi. Независимо от того, как я загружаю библиотеки, для меня библиотека визуализации загружается неправильно, поэтому я получаю undefined при попытке создать экземпляр объекта GeoChart. Кто-нибудь еще сталкивался с этой проблемой?
(Код JS представлен в виде функций виджета Dojo)
update : function(obj, callback){
this._contextObj = obj;
this._resetSubscriptions();
if (this.apiAccessKey amp;amp; this.apiAccessKey !== "") {
google.charts.load('current', {
'packages':['geochart'],
// Note: you will need to get a mapsApiKey for your project.
// See: https://developers.google.com/chart/interactive/docs/basic_load_libs#load-settings
'mapsApiKey': this.apiAccessKey
});
google.charts.setOnLoadCallback(this.drawChart(callback));
} else {
var message = " Google Geochart needs an active API key to work!";
console.error(this._logNode message);
alert(message);
}
},
drawChart : function (callback) {
// Run this as soon as google charts is loaded.
// Create map and its container.
if (!this.geoMap) {
this.geoMap = new google.visualization.GeoChart(this.geoMapContainer);
}
if (this._contextObj){
this._getObjects(this._contextObj.getGuid,callback);
} else {
this._getObjects(null,callback);
}
this._executeCallback(callback);
},
Ответ №1:
setOnLoadCallback
ожидает ссылку на функцию —> this.drawChart
не результат функции —> this.drawChart(callback)
попробуйте выполнить следующее…
google.charts.setOnLoadCallback(function () {
this.drawChart(callback);
});