1

我是 JavaScript 新手。我正在做 django 项目。我需要将字典模板变量传递给 javascript,但我无法做到。

views.py 包括:

def index(request):
   name={'bishal':509,'bishnu':510}
   return render_to_response("test.html",Context({'name':simplejson.dumps(name)}))

test.html 包括:

{% 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 %}

test.js 包括:

$(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>

效果很好。请帮忙!

4

2 回答 2

2

忽略所有的 JavaScript。你的问题的关键是:

[30/Jul/2013 02:50:51] "GET /visualize/static/js/test.js HTTP/1.1" 404 2732

404 是“找不到文件”的 HTTP 代码,这意味着您使用了不正确的路径来引用您的 JavaScript 文件。解决这个问题,您可能会发现您的解决方案可以工作 - 或者,如果不是,至少会以不同的方式中断。

于 2013-07-30T08:19:36.787 回答
0

@Adrian 对错误消息是正确的,但我怀疑您正在考虑的问题是由于未{{name}}在 test.html 中加上引号引起的。尝试:

<script type="text/javascript">
    var name='{{name}}';
</script>
于 2013-07-30T09:49:08.843 回答