Javascript 传递给js的字典不工作
我是javascript新手。我正在做django项目。我需要将dictionary模板变量传递给javascript,但我还不能 views.py包括:Javascript 传递给js的字典不工作,javascript,django,django-templates,django-views,Javascript,Django,Django Templates,Django Views,我是javascript新手。我正在做django项目。我需要将dictionary模板变量传递给javascript,但我还不能 views.py包括: def index(request): name={'bishal':509,'bishnu':510} return render_to_response("test.html",Context({'name':simplejson.dumps(name)})) {% load staticfiles %} {% block
def index(request):
name={'bishal':509,'bishnu':510}
return render_to_response("test.html",Context({'name':simplejson.dumps(name)}))
{% load staticfiles %}
{% block include_js %}
<script src="{% static "js/chart.js" %}"></script>
<script src="{% static "js/test.js" %}"> </script>
{% endblock include_js %}
{% block main_content %}
<script type="text/javascript" src="static/js/test.js"></script>
<script type="text/javascript">
var name={{name}};
</script>
<button class="btn btn-primary" id="btn1" type="button" onclick="myfunction()">1st visualization</button>
{% endblock %}
$(function myfunction() {
document.getElementById('btn1').onclick=function(){
name=JSON.parse(name);
alert(name);
};
});
test.html包括:
def index(request):
name={'bishal':509,'bishnu':510}
return render_to_response("test.html",Context({'name':simplejson.dumps(name)}))
{% load staticfiles %}
{% block include_js %}
<script src="{% static "js/chart.js" %}"></script>
<script src="{% static "js/test.js" %}"> </script>
{% endblock include_js %}
{% block main_content %}
<script type="text/javascript" src="static/js/test.js"></script>
<script type="text/javascript">
var name={{name}};
</script>
<button class="btn btn-primary" id="btn1" type="button" onclick="myfunction()">1st visualization</button>
{% endblock %}
$(function myfunction() {
document.getElementById('btn1').onclick=function(){
name=JSON.parse(name);
alert(name);
};
});
但错误的说法是:
[30/Jul/2013 02:50:51] "GET /visualize/static/js/test.js HTTP/1.1" 404 2732
我在html中尝试了类似的事情:
<html>
<head>
<script type="text/javascript">
function myfunction()
{
dict=JSON.parse(dict);
alert(dict);
}
</script>
</head>
<body>
<script type="text/javascript">
var dict='{"bishnu": 509, "bishal": 510}';
</script>
<form>
<input type="button"
onclick="myfunction()"
value="Call function">
</form>
<p>By pressing the button, a function will be called. The function will alert a message.</p>
</body>
</html>
函数myfunction()
{
dict=JSON.parse(dict);
警惕(dict);
}
var dict='{“bishnu”:509,“bishal”:510}';
按下按钮,将调用一个函数。该功能将提示一条消息
这非常有效。请帮忙 忽略所有JavaScript。问题的关键在于:
[30/Jul/2013 02:50:51] "GET /visualize/static/js/test.js HTTP/1.1" 404 2732
404是“未找到文件”的HTTP代码,这意味着您使用了不正确的路径来引用JavaScript文件。解决这个问题后,您可能会发现您的解决方案会起作用,或者,如果没有,至少会有不同的中断。@Adrian关于错误消息是正确的,但我怀疑您所考虑的问题是由于没有在test.html中的
{{name}}
周围加引号造成的。尝试:
<script type="text/javascript">
var name='{{name}}';
</script>
var name='{name}}';
我想在OP中补充一点,您所做的被认为是非常糟糕的做法,应该尽可能避免@如果你想把它作为一个单独的答案加上改进的建议,我很乐意投上一票,以便最初的提问者至少能看到它。虽然我怀疑他在维护别人的代码,但他自己可能无法更改。path是正确的,因为它适用于类似传递的字符串让我们假设它比看起来更复杂,chart.js和test.js都在同一个文件夹中。您能否证明加载的chart.js肯定是来自该位置的(例如,在顶部放置一个警报()?另外,您是否有可能在某个地方输入了错误的文件名,或者文件名中有一个空格您遗漏了?@limelights您能详细介绍一下这里的错误做法是什么吗?