【发布时间】:2014-03-20 08:24:07
【问题描述】:
我已经成功地在我的主页上渲染了谷歌地图。我对我的一个内页使用了相同的技术。
var MapView = Ember.View.extend({
layoutName: 'pagelayout',
didInsertElement : function(){
var mapOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(this.$("#map").get(0),mapOptions);
this.set('map',map);
},
redrawMap : function(){
var newLoc = new google.maps.LatLng(this.get('latitude'), this.get('longitude'));
this.get('map').setCenter(newLoc)
}.observes('latitude','longitude')
});
但是,它不会渲染。如果我像这样更改它,它可以工作,但会接管基本的 html 元素。
this.$().get(0) /**from this.$('#map').get(0)**/
我很困惑。考虑到问题可能是 didInsertElement 被触发的太早了(我知道当这个事件触发时这个 View 的整个 DOM 都将可用),我尝试设置一个 afterRender 监听器并触发了地图加载但这也失败了。我已经三次检查了 div 是否存在。
有人可以帮我解决这个问题吗?
【问题讨论】:
标签: javascript google-maps ember.js