大家好,我正在尝试使用backbone.js 创建一个谷歌地图视图,但我真的不明白我需要做什么才能实现它。
这就是我到目前为止所拥有的(我也不确定这是否正确)。我真的不明白这种视图的渲染功能需要发生什么。
MYAPP.Widgets.Map = Backbone.View.extend({ template : template('grid-12'), initialize: function(){ }, activate: function(){ var mapOptions = { zoom: 8, center: new google.maps.LatLng(-34.397, 150.644), mapTypeId: google.maps.MapTypeId.ROADMAP }; this.map = new google.maps.Map(document.getElementById('googleMapBox'),mapOptions); }, render: function(){ this.$el.html(this.template(this)); this.activate(); return this; }, });
谢谢
已编辑:我查看了 tkone 提到的线程。我在那里看不到答案,我真的不明白他为什么拒绝在这件事上提供任何真正的帮助。这可能是因为我缺乏 JS 或骨干知识(这真的没关系)。其他用户无法理解如何进行这项工作的其他帖子中提到了与 tkone 相同的问题。
我已经做到了这一点,但我收到了这个错误
Uncaught TypeError: Cannot read property 'offsetWidth' of null main.js:28 ih main.js:28 Lh main.js:34 MYAPP.Widgets.Map.Backbone.View.extend.activate MTAPP.widgets.js:23 MYAPP.Widgets.Map.Backbone.View.extend.render MYAPP.widgets.js:38
(匿名函数)
我希望还有其他人可能想为解决这个问题做出贡献。
更新所以按照评论getElement函数确实返回null,所以我用一个返回元素的jquery选择器切换它
但是!,我确实得到了一个不同的错误:未捕获的类型错误:无法设置未定义的属性“位置”
在此线程之后: 未捕获的类型错误:无法设置未定义的属性“位置”
我看到您无法将 jquery 元素发送到 Map 对象。所以现在我坚持如何从 jquery 中提取实际的 DOM 元素。
关注这个线程: 如何从 JQuery 选择器中获取 DOM 元素
我终于能够解决它。
谢谢你。