我正在使用 geocomplete 输入#create
表单的地址字段。谷歌地图 api 加载在头部。
<head>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=<%= ENV['DEV_MAPS_API_KEY'] %>&libraries=places"> </script>
</head>
应用程序.js.erb
$(document).ready(function(){
$("#gig_location").geocomplete();
});
这在页面加载时效果很好,如果我刷新页面,我也没有任何问题。
如果有表格错误,就会出现问题。我正在使用render :new
所以输入的表单字段不会丢失,但是当页面重新加载时,我会收到Uncaught ReferenceError: google is not defined
错误消息。
Gig_controller.rb
def create
.....code....
if @gig.save
redirect_to @gig
flash[:success] = "Gig created successfully"
else
@errors = @gig.errors
@gig = Gig.new(gig_params.merge(genres: genres))
render :new
end
end
如果我使用redirect_to new_gig_path
它会重新加载所有内容并geocomplete
正常工作,但表单输入也会被擦除。
其他 jquery 元素在render :new
被调用后继续工作,只有谷歌地图 API 没有。
如何在渲染时重新加载/保存 google map api jquery :new
?