我在通过Ajax加载的表单主体中使用Gmap4Rails。表单中有一些自定义字段,其中一些可能是我在处理表单的非Ajax版本时使用的位置选择器。
使用Ajax版本的表单,我得到了"Gmaps.my_map_id“未定义的错误。
在表单的非Ajax版本中,我将Gmaps.loadMaps通过JavaScript在HTML页面的头部调用为"window.onload“,这是Gmaps4Rails的通常做法。
但是,这在Ajax的上下文中是行不通的,因为映射在window.onload时还没有定义。
在我的表单中,我还为每个Gmap映射对象定义了一个回调。这似乎是“未定义”错误的失败之处,即使在我在由Ajax加载的代码中定义第一个回调之前直接执行“Gmaps.loadMaps()”脚本时。
基本上,按照代码顺序是这样的:
循环中的
对如何让这件事奏效有什么建议吗?
发布于 2011-09-14 17:29:47
更新:可能只是部分正确(即我确实遇到了这里概述的问题,但调用Gmaps.loadMaps()仍然不起作用)。
第二次更新:我不得不改变load_的定义.在Gmap对象上,然后相应地更改Gmaps.loadMaps函数。我已经向https://github.com/apneadiving/Google-Maps-for-Rails/pull/94的项目提出了一个拉请求。
Gmaps.loadMaps()调用不是问题所在。所以没有必要有其他选择。让我感到震惊的是,在部分enable_js中被调用为false,而声明Gmaps4RailsGoogle的新实例和加载函数的JavaScript没有被调用。
我有一个自定义版本的部分,在我的情况下,即使enable_js (我解释为“不加载我的应用程序的javascript库文件”)是假的,我仍然做JavaScript声明新的Gmaps4RailsGoogle实例并定义load_.函数。
尽管如此,load_.功能似乎不适合我。在我的例子中,它带回来了以下几点:
TypeError:“未定义”不是函数(计算‘窗口“load_”+ key')
当我给load_打电话时..。函数直接从控制台(而不是Gmaps.loadMaps调用)得到一个类似的错误:
"'undefined' is not a function (evaluating 'this.load_...()')"
可能与没有声明任何标记有关?任何关于这个问题的暗示都很感激。
如果我在负荷中跨过台阶..。函数,引发错误的第一个位是.initialize()。还在调查。
https://stackoverflow.com/questions/7411443
复制相似问题