gpt4 book ai didi

javascript - Django 模板不执行 js 函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:21:23 25 4
gpt4 key购买 nike

我有一个看起来像这样的 django 模板:

<head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}js/jquery.flot.js"></script>
<!--<script src="c:/src/project/scraper/collegedata/templates/chart.js" type="text/javascript"></script>-->
<script src="{{ STATIC_URL }}js/chart.js" type="text/javascript"></script>

</head>

<body>

<div id="chart1" style="width:600px;height:300px"></div>


<script>
show_graph("{{ chart_type }}", {{ series_names }}, {{ data }}, {{ answer }});
</script>

<form action="start">
<input type="submit" value="Back to Questions" />
</form>

</body>

</html>

其中 show_graph 是 chart.js 中的一个函数。但是,pycharm 给了我两个错误之一:未解析的函数或方法 show_graph(),或传递的参数数量无效:应为 4

而且这个函数显然没有被调用。

我什至不知道是否可以将模板变量传递给 js 函数...

有没有人有什么见解?

编辑:

这会产生

<html xmlns="http://www.w3.org/1999/xhtml"><head>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js" type="text/javascript"></script>
<script src="/static/js/jquery.flot.js"></script>
<!--<script src="c:/src/project/scraper/collegedata/templates/chart.js" type="text/javascript"></script>-->
<script src="/static/js/chart.js" type="text/javascript"></script>

</head>

<body>

<div id="chart1" style="width: 600px; height: 300px;"></div>


<script>
show_graph("pie", [&lt;ResponseOption: puddentane&gt;, &lt;ResponseOption: down the lane&gt;], [1, 0], 0);
</script>

<form action="start">
<input value="Back to Questions" type="submit">
</form>

</body></html>

chart.js 的样子(值暂时硬编码用于故障排除,应该提到的是 $.plot 也给出了 Unresolved 函数错误):

function show_graph(charttype, series_names, data, answer_index){

var data = [2000, 50, 400, 200, 5000];

var data3 = [
{ label: "my cat", data: 10, color: 'rgb(85, 96, 42)'},
{ label: "my friends", data: 20, color: 'rgb(105, 118, 52)'},
{ label: "my boyfriend", data: 30, color: 'rgb(125, 141, 62)'},
{ label: "my job", data: 30, color: '#42215F'},
{ label: "food", data: 10, color: 'rgb(145, 164, 72)'},
{ label: "social skills", data: 0, color: 'rgb(166, 189, 82)'}
];

alert("in chart.js");

var charttype = "pie";

var type = {};
type[charttype] = {show: true};

var chart_options = {};
chart_options["series"]=type;

var plot = $.plot($("#chart1"), data3, chart_options);
}

最佳答案

看起来 series_names 只是作为对象的 HTML 实体输出,没有适当的 __unicode__ 方法。你得到:

show_graph("pie", [&lt;ResponseOption: puddentane&gt;,

解码后是:

show_graph("pie", [<ResponseOption: puddentane>, ...

实际上需要传递给方法的是什么?您可能需要考虑如何输出 {{ series_names }},而不是仅仅调用该变量的字符串表示形式。您目前生成的是无效的 Javascript - 您浏览器的控制台可能会强化这一点。

关于javascript - Django 模板不执行 js 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7218123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com