首页 > 解决方案 > Django 将数据发送到 Javascript 文件

问题描述

我知道如何将数据从 Django 发送到html视图

def index(request):
    coord = "[[1, 2], [2, 1]"
    return render(request, 'index.html', {'coord': coord})

html我可以在任何地方使用它{{ coord }},例如:

<script type="text/javascript">
     var geojsonObject = {
         "coordinates": {{ coord }}
     };
</script>

但是,当我尝试在我的“index.js”中执行此操作时,出现错误:

未捕获的语法错误:意外的标记“{”

index.html

<script src="{% static 'index.js'%}"></script>

index.js

var geojsonObject = {
         "coordinates": {{ coord }}
};

我可以保留所有内容index.html,但我发现调试起来不切实际。coor如何通过 html将我的对象传递给 JavaScript?

标签: javascriptdjangodjango-templates

解决方案


你确定要“渲染”你的 index.js 吗?我想一个更好的方法是修改你的 index.js 以便 if 接受模板化的值作为变量。例如:

索引.html

<button onclick="doStuff({{ coord }})">Button</button>

index.js

function doStuff(coord) {
    var geojsonObject = {
         "coordinates": coord,
    };
}
  • 这样,您也不需要将所有代码复制到 index.html 文件中。
  • 否则,您可以将一个 ID 传递给您将值模板化到的元素,然后使用document.getElementById("myElement").innerHTML它来访问它的值。

推荐阅读