& # 39;这个# 39;没有在backbone.js视图中定义
'this' is not defined within a backbone.js view
我正试图实现谷歌地图api作为一个backbone.js视图。这是目前为止自动完成函数的代码:
address_search_listen: function(){
//create a new auto complete object
var map= this.map;
var autocomplete = new google.maps.places.Autocomplete((document.getElementById('address_search')),{types: ['geocode'] });
google.maps.event.addListener(autocomplete, 'place_changed',function(){
var place = autocomplete.getPlace();
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0, 0),
map: map,
title: "test"
});
});
}
在事件处理程序中没有定义变量map。我试过几件事都没有成功。有人能帮我一下吗?
为了回答你的问题,最好先知道你的主干视图结构。具体来说,就是创建google map实例和调用函数address_search_listen
的地方。
如果你确定谷歌地图实例被创建并成为你的view
对象的属性,一个可能的原因,导致你有未定义的变量map
是this
指的是其他对象而不是你的view
对象。
正如上面@Manuish建议的那样,使用_。绑定设置处理程序的作用域:
_.bind( this, function(){
var place = autocomplete.getPlace();
var marker = new google.maps.Marker({
position: new google.maps.LatLng(0, 0),
map: map,
title: "test"
})
);
相关文章:
- Backbone.js视图中的多个模型
- 带有jquery插件的backbone.js视图
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- Angular JS-视图不工作
- 为什么当我单击X时,所有项目都会从我的Backbone.js视图中删除
- 主干.js视图不会在页面加载时显示,但可以在控制台中与 jQuery 配合使用
- 单击'Backbone.js视图'不要工作
- 设置Sails js视图扩展不'不起作用
- 在 Node.js 视图中创建 OpenLayers 映射
- 支持使用Backbone.js视图加载异步模板
- Backbone.js视图可以有一个模型和一个集合吗
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- 为什么我在尝试实例化一个空的backbone.js视图时出现类型错误
- 如何创建adonis.js视图
- Backbone.js视图未渲染
- Backbone js视图渲染点击方法未调用[Very Basic]
- 我可以't填充backbone.js视图
- 如何在anular.js视图中比较两个字符串
- 在Backbone.js视图中拖动gabilly.js事件
- 关于主干的困惑.js视图的渲染函数