1

我正在使用 mapstraction-rails 插件,它在 rails 2.3 版本中运行良好。当我将 rails 版本升级到 3.2 时,我开始收到此错误并且地图无法加载

TypeError: this.location.toProprietary is not a function        

options.position = this.location.toProprietary(this.api);

在萤火虫中,我在文件中看到错误:mxn.googlev3.core.js 在第 484 行。

JQuery 版本与 rails 2.3 中使用的相同,即 1.4

我在用

@map.initialize_map(:onload=>false) #=> in rails 2.3

<%= @map.initialize_map(:onload=>false).first.html_safe %> #=> in rails 3.2 as this method returns the array with one element me in it.

脚本标签中的方法来调用显示地图的函数。

我检查了this.location.toProprietary(this.api);的this元素 在萤火虫中,似乎“this”元素在rails 3.2中有所不同。请截图。

在轨道 2.3 中

在此处输入图像描述

在轨道 3.2 中

在此处输入图像描述

4

1 回答 1

1

插件 lib/mapstraction/latlon.rb 中有一个文件。

它有一个方法:

def to_html
  html =[]
  html << "new mxn.LatLonPoint(#{@latitude},#{@longitude})"
  return html
end

我修改了返回值,JavaScript 中的“ this ”对象与 rails 2.3 版本中的对象相同。

修改方法:

def to_html
  html =[]
  html << "new mxn.LatLonPoint(#{@latitude},#{@longitude})"
  return html.join(" ").html_safe
end
于 2013-10-23T06:37:13.557 回答