作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Symfony3 中有一个小应用程序,其中有一个谷歌地图,显示从数据库注入(inject)的一些位置。我想要实现的目标是在谷歌地图的 infoWindows 内放置一个指向每个位置页面的链接。位置页面的通配符是这样的:
location/{id}
所以<a>
标签href
应该是以下内容:
<a href="{{ path('location', {'id': location.id }) }}">
这是包含所有数据的 JSON:
"[
{"id":72,"name":"Stintino","lat":"40.94013320","lng":"8.223588900000"},
{"id":73,"name":"Cagliari","lat":"39.22384110","lng":"9.121661300000"},
{"id":74,"name":"La maddalena","lat":"41.21655380","lng":"9.404712200000"},
{"id":75,"name":"Sassari","lat":"40.72592690","lng":"8.555682600000"},
{"id":76,"name":"Oristano","lat":"39.90618200","lng":"8.588386300000"},
{"id":77,"name":"Spiaggia-del-oetto","lat":"39.20861110","lng":"9.169166700000"}
]"
以及我在 twig 模板中的 javascript 代码:
{% extends 'base.html.twig' %}
{% block content %}
{% block javascripts%}
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
<script type="text/javascript">
var locations = JSON.parse('{{ locations | raw }}');
console.log(locations);
var map = new google.maps.Map(document.getElementById('wsMap'), {
zoom: 7,
center: new google.maps.LatLng(40.0562194, 7.8577928),
disableDefaultUI: true,
scrollwheel: false,
draggable: true,
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i]['lat'], locations[i]['lng']),
map: map,
title: locations[i]['name']
});
var idloc = locations[i]['id'];
var contentString = Routing.generate("location", { id: idloc });
var url = '<a href="'+contentString+'">link</a>';
alert(url);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(url);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
{% endblock %}
<div id="wsMap" style="width: 100%; height:800px"></div>
{% endblock %}
你知道如何连接所有字符串和变量以正确呈现 infoWindows 内的链接吗?
编辑
添加FOSJsRoutingBundle和routing.generate函数后,我只得到 map 所有信息窗口中生成的最后一条路线。但在警报窗口中我得到了所有路线! (参见上面编辑的代码)。不幸的是,我的 JavaScript 技能很差......
最佳答案
您的其余代码看起来都不错 Salv Ric。您只需要在 Twig 中使用 ~
波浪号进行串联即可。我认为这只是一行:
var contentString = '<a href="{{path ("location", {"id": '
~ id ~ ' }) }}">' ~ locations[i]['name'] ~ '</a>';
你能尝试一下并看看结果吗?我输入了回车符,在包含引号并在下一行使用波浪号后就可以了。
关于javascript - 谷歌地图信息窗口中的 Symfony 动态通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39540809/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!