我正在尝试将标记添加到 Django 管理页面中加载的传单地图,其中包含从 ajax 调用中检索到的数据。但是,我无法获得对可在用于覆盖 Django 管理模板的模板中使用的地图的引用。
如果我加载页面,打开控制台,然后运行下面的代码就可以了。标记被添加到地图中。
安慰:
var map = window['leafletmapid_location-map'];
L.marker([40.3830621, -111.773658]).addTo(map);
但是,如果我在模板中包含完全相同的代码,它就不起作用,因为它没有获得对地图的引用,我不知道为什么。
模板:
{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}
{% block content %}{{ block.super }}
<script>
var map = window['leafletmapid_location-map'];
L.marker([40.3830621, -111.773658]).addTo(map);
</script>
{% endblock %}
如果我用以下内容替换整个脚本标记,我会得到未定义,我认为这是问题的原因。
模板:
<script>
console.log(window['leafletmapid_location-map'])
</script>
但是,如果将模板更改为以下内容,我会得到 window 对象,并且它显示它具有可用的 leafletmapid_location-map 对象。
模板:
<script>
console.log(window)
</script>