2016-03-25 16 views
2

numaralı telefondan geri arama kullanın Şu anda OOP, sınıf tabanlı, JavaScript yapısı olan bir web sitesinde çalışıyorum. Altında, Google Haritalar API'sini şu şekilde uygulamıştım: Daha önce denediğim birkaç tane geri arama var; MapView.renderMap veya sadece renderMap gibi. MapView sınıfının içinde bulunan renderMap() işlevini nasıl arayabilirim, böylece Google Haritalar'ı sayfamda görüntüleyen bazı aramaları çalıştırabilir miyim?Bir JavaScript sınıfı

cevap

2

Harita oluşturulduktan sonra çağrılacak geri arama işlevi, global bir işlev olmalıdır. Bu nedenle, callback GET parametresini kullanarak MapView örnek yöntemini belirtemezsiniz.

Ancak yapmanız gereken, gerekli yönteme global referans oluşturmaktır. Böyle bir şey çalışması gerekir: bu kadar

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'); 
    } 
} 
+0

sayesinde hile yaptı:

İşte
window.renderMap = this.renderMap.bind(this); 

tam pasajıdır. –