在JavaScript类中使用回调
Use a callback in a JavaScript class
本文关键字:回调 JavaScript 更新时间:2023-09-26
目前我正在开发一个具有OOP、基于类的JavaScript结构的网站。下面是我如何实现谷歌地图API:
class MapView extends Module {
constructor(element, $) {
super();
this.$element = $(element);
this.initMap();
}
initMap() {
if ( !$('#gmaps-api').length ) {
var api = 'AIzaSyAfPMecz3Pl6eh5zysrdqbPuyoVImSCYTg';
var s = document.createElement('script');
s.src = '//maps.googleapis.com/maps/api/js?key=' + api + '&callback=renderMap';
s.type = 'text/javascript';
s.id = 'gmaps-api';
document.getElementsByTagName("head")[0].appendChild(s);
}
}
renderMap() {
console.log('called back');
}
}
我已经试过一些回调;如CCD_ 1或仅CCD_。如何调用MapView
类中的renderMap()
函数,以便执行一些在页面上呈现谷歌地图的调用?
一旦可用,映射脚本将调用的回调函数必须是全局函数。这就是为什么不能使用callback
GET参数指定MapView
实例方法的原因。
然而,您可以做的是创建对必要方法的全局引用。像这样的东西应该起作用:
window.renderMap = this.renderMap.bind(this);
以下是完整的片段:
class MapView extends Module {
constructor(element, $) {
super();
this.$element = $(element);
this.initMap();
}
initMap() {
if (!$('#gmaps-api').length) {
window.renderMap = this.renderMap.bind(this);
var api = 'AIzaSyAfPMecz3Pl6eh5zysrdqbPuyoVImSCYTg';
var s = document.createElement('script');
s.src = '//maps.googleapis.com/maps/api/js?key=' + api + '&callback=renderMap';
s.type = 'text/javascript';
s.id = 'gmaps-api';
document.getElementsByTagName("head")[0].appendChild(s);
}
}
renderMap() {
console.log('called back');
}
}
相关文章:
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- Javascript点击事件回调不起作用
- 如何让程序员在javascript中实现正确的回调
- 从多个回调 javaScript 返回最终对象
- 如何使用传递参数回调 JavaScript 对象属性
- 可能从其他域弹出时回调 JavaScript
- 一个函数,它接受回调并创建只能调用一次的新版本的回调.Javascript
- 构造Javascript回调:Javascript/JQuery
- 对象成员函数的回调?(Javascript)
- 回调javascript动画
- 如何将自定义回调javascript参数添加到bing API回调中
- Facebook喜欢按钮回调javascript警告框
- 在Yii2中表单验证后的回调Javascript函数
- ASP.Net ThreadPool委托回调——JavaScript不会在回调线程上触发
- 其他函数中的回调 javascript 函数
- robot -递归回调- JavaScript
- 更好的回调Javascript代码在Express/NodeJs