小编ANY*_*507的帖子

Google Maps加载API脚本并在ember.js视图中初始化

我正在尝试为Google地图创建Ember View,并按需加载脚本,即异步加载API.

我在视图中有两个函数,一个用于加载Google Maps API,另一个用于初始化地图.但由于Google要求我通过需要API的链接调用回调函数.但在Ember.JS,我无法得到正确的结果.所有我得到的是一条错误消息,说在尝试初始化地图时未定义对象"google".

这是现在的Ember视图代码.

App.MapsView = Ember.View.extend({

templateName: 'maps',
map: null,

didInsertElement: function() {
    this._super();
    this.loadGoogleMapsScript();
},

initiateMaps:function(){
    var mapOptions = {
        zoom: 8,
        center: new google.maps.LatLng(-34.397, 150.644),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(this.$().get(0), mapOptions);
    this.set('map',map);
},

loadGoogleMapsScript: function(){
    var map_callback = this.initiateMaps();

    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=map_callback';
    document.body.appendChild(script);
},
Run Code Online (Sandbox Code Playgroud)

});

任何想法如何解决这个回调问题?而且,初始化地图的最佳方式是什么?它应该在模板中还是来自JS?

提前致谢.

javascript google-maps callback ember.js

7
推荐指数
1
解决办法
1866
查看次数

标签 统计

callback ×1

ember.js ×1

google-maps ×1

javascript ×1